2007/11/30(金)Ruby on Rails[3]

[5]はまったところ

renderは1アクションにつき1つという制約がある。Ajaxを使い始めると、Ajax部分を初回の表示に使いたかったりして、これが意外とこの制約に衝突することがある。打開策としては、ともかく設計段階から、Ajaxを使う予定があるところはrender :partial用にするとして、サブに分ける必要がある。
render :partialはアクションの実行がないというが一つ大事なところ。ここら辺は知識として知った上でないと設計で失敗しやすく、結構引っかかりやすいところだと思う。またrender: してからredirect_toもできない。メソッドを書いたとき、render :partialしたとき、redirect_toしたとき、どのアクションが実行されてどのビューが表示されるのか把握しておくのがRails理解の第一歩。

messageは知る限りもっともtypoが多い英単語。

[6]はまったところ、Ajaxまわり

link_to_remote, observe_formなど、Ajaxのメソッドを使うにはヘッダに

<%= javascript_include_tag :defaults %>

を書かなければいけない。けっこうどこにも書いてないので気をつける。あちこちで使いたいなら、/app/views/layoutsのモデルレイアウトに書いておけばよし。
RJSはerbではなく、純Ruby。RJSでは:partialを呼ぶだけにして、書き直す中身はサブビューに分離しておくのがスマートだと思う。

observe_formは:frequencyを書くと、Form.Observerになり、書かないと、Form.EventObserveになる。マニュアルにかいといて……
OK キャンセル 確認 その他