ITコンサルの日常

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

「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