ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

「捩れ屋敷の利鈍―The Riddle in Torsional Nest」読了

捩れ屋敷の利鈍 (講談社文庫)

捩れ屋敷の利鈍 (講談社文庫)

ここまできました、Vシリーズ8巻。
メビウスの輪を建造物にしてしまったとかいう、なんとも想像しようとするも想像できないお話。
おいおい、また保呂草潤平が暗躍してるよってのもあるんですが、実はS&Mシリーズとリンクしてて、犀川先生と西之園萌絵が出てくるんです!
森博嗣ファン必見の一冊かも知れません。
できれば、瀬在丸紅子 vs 犀川創平 vs 真賀田四季が見たかったのですが、今後の四季シリーズに期待でしょうか。
でも、なんで犀川先生は電話でちょっと話を聞いただけで、トリックが分かっちゃうわけ?ちょっとひいきし過ぎな気がしますが。。
ネタバレすると、今までも建物が回転したり、部屋がエレベータみたいになってたり、建物にまつわるトリックってありましたが、今回もそれ系だったりします。いやいや、普通そんなことしないでしょうがって。これ分かったらほんとすごいです。(うーん、そればっかり言ってる気がする)
ページ数は少な目でしたが、Vシリーズ残り2冊の重さに対する何かの予兆なのか?

「RailsによるアジャイルWebアプリケーション開発」6章まで読了

とりあえずscaffoldやり直したので、コントローラ名がadminじゃなくてproductとか、list.rhtmlじゃなくてindex.html.erbだったりとか、色々違いはあるものの、違いをなんとか脳内で吸収しつつここまできました。
ので、章末の自由課題をやってみる。

productモデルに検証を追加して、商品名が10文字以上の長さであることを調べるようにしてみましょう。

こんな感じ。

  validates_length_of :title,
                      :minimum  => 10,
		      :message  => "は10文字以上でなければなりません"

日本語のタイトルも、ちゃんと10文字制限かかってます。すごいね。

検証に関連付けたエラーメッセージの1つを変更してみましょう。

こんな感じ。

  validates_numericality_of :price,
  			    :message  => "は数値でなければなりません"

デフォルトでは、「Price is not a number」みたいなメッセージが出るのですが、messageで指定すれば変更できます。

listアクションの出力に商品の価格を追加してみましょう。

こんな感じ。

    <td>
      <%= product.price %>
    </td>

いい感じのところに、上記のようなHTMLを挿入するだけ。
まだまだカンタン。いけそうですね。


(補足1)

課題のヒントはhttp://wiki.pragprog.com/cgi-bin/wiki.cgi/RailsPlayTimeを参照

とあるが、現在は、http://pragprog.wikidot.com/rails-play-timeになってます。


(補足2)
validates_length_ofの詳細な仕様は、リファレンスマニュアルに載ってました。
http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M001328

「RailsによるアジャイルWebアプリケーション開発」7章まで読了

色々躓いたのは最初だけだったのか、この章の内容はさほどRails1.2と2.0の違いがなかったのか、よく分かりませんが、とりあえず問題ありませんでした。
ので、またもや自由課題。

サイドバーに日付と時刻を追加してみましょう。

こんな感じ。

<%= Time.now %>

まんまですが、

Thu May 01 23:09:43 +0900 2008

とか出てきます。濃い緑の背景に黒文字なので非常に見づらいですが。。

本の画像をクリックしてもadd_to_cartアクションが呼び出されるように、アプリケーションを変更してください。

こんな感じ。

    <%= link_to image_tag(product.image_url), :action => :add_to_cart, :id => product %>

image_tagでimgタグを生成した後、link_toでaタグを生成する。
イマイチAPIリファレンスを見慣れていないので、探すのが大変だ。
image_tagは、ActionView::Helpers::AssetTagHelperに含まれています。
http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#M001031
link_toは、ActionView::Helpers::UrlHelperに含まれています。
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#M000913

number_to_currencyのさまざまなオプションを設定し、カタログリストでその効果を確認してみましょう。

number_to_currencyは、ActionView::Helpers::NumberHelperに含まれています。
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000995
で、Optionはこれだけあるらしい。

  • :precision - Sets the level of precision (defaults to 2).
  • :unit - Sets the denomination of the currency (defaults to "$").
  • :separator - Sets the separator between the units (defaults to ".").
  • :delimiter - Sets the thousands delimiter (defaults to ",").

試しに、

    <span class = "price"><%= number_to_currency product.price, :unit => '円' %></span>

とかやってみたが、ものの見事に、

円29.95

となりました。そりゃそうか(汗

いまさらGmailを使う。携帯でプロバイダのメールが見れて便利!

密かに(?)Google Hacks 第二版を読んでるのですが、それに触発されていまさらGmail導入してみました。
なにが便利って、プロバイダのメールを受信できること(設定 → アカウント → 別のアカウントからメールを受信: (POP3 を使用してメールをダウンロードする))
と、携帯からメールが見れることだったりします。
しかも、迷惑メールはフィルタして別フォルダに入れてくれるし。
今までは、プロバイダが提供してくれている携帯用メールサーバ閲覧ツール(月額157円)を使ってましたが、それも即刻解約しました。惜しむらくは月末解約なので、今日だと丸々一ヶ月分損なんですよね。。