「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