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はアクセスコントロールに使える。