「捩れ屋敷の利鈍―The Riddle in Torsional Nest」読了
- 作者: 森博嗣
- 出版社/メーカー: 講談社
- 発売日: 2005/03/15
- メディア: 文庫
- 購入: 1人 クリック: 8回
- この商品を含むブログ (93件) を見る
メビウスの輪を建造物にしてしまったとかいう、なんとも想像しようとするも想像できないお話。
おいおい、また保呂草潤平が暗躍してるよってのもあるんですが、実は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
となりました。そりゃそうか(汗