AWDwR 11まで
まずはChapter10
DBのカラムにdatetime型,date型を使う場合はカラム名を「なんとか_at」「なんとか_on」としましょう。何かいいことあるらしい:-)。詳しくはChapter15で。
ビューで
render(:partial => "order_line", :collection => @pending_orders)
とすると、イテレーションを回しながら各回をテンプレートを使って表示できる。ほほぅ。
チェックボックスは、ビューで
check_box("to_be_shipped", order_line.id, {}, "yes", "no")
とすると、コントローラで
params[:to_be_shipped].each do |order_id, do_it| if do_it == "yes" # チェックされた場合の処理 end end
てな感じで処理できる。わかりやすい。Strutsでチェックボックスは面倒だからね。
続いてChapter11
ユーザ登録画面なんかで初期画面を表示する処理とその画面から送信されたフォームデータの処理を一つのアクションで行なう方法。初期画面の表示はGETでリクエストされ、フォームデータの送信はPOSTでリクエストされるという性質を利用して、以下のようにする。
if request.get? # 初期画面の表示処理 else # フォームデータの処理 end
なるほど。でも、これは初期画面のリクエストがGETで来る場合限定ですね。
ActiveRecordにはいろいろな処理をフックするメソッドがあり、before_create, after_createなどがある。コントローラにも同様にフィルタがあり、before_filterはアクセスコントロールに使える。