RoR で実現する Ajax アプリ (写経) その 2
直前エントリの不具合について
- どうも migrate する前に model を generate のが作法らしい。
- コードを追いかけて意味を確認な必要あり。
- 例外が発生している模様。ただし、DB は更新されている。
- _list.rhtml の 2 行目 との事。オブジェクトが nil と言われている。
で、追いかけてみるに
- ブラウザで最初にアクセスしたのは task コントローラ。
- task_controller の index アクション にて List.find_all の戻りが @lists に設定
- かつ、layout に default が指定されており、app/views/layouts/default.rhtml をテンプレートとして使用。
- task view の index.rhtml の表示処理
- id が tasklists 部分は _list.rhtml をテンプレートとして使用。
- _追加する_ボタンのクリック時に、add_list#app/controllers/ajax_controller.rb の呼び出し
- 生成した List オブジェクトを render_add メソドに渡す
- render_add メソドでは
- 渡された List オブジェクトを save
- save に成功したら render 呼び出し
- (おそらくは) 追加した一行を末端に追加する処理となる (はず)
結論として app/controllers/ajax_controller.rb の render_add メソドの以下の部分が誤りだった模様。
app/controllers/ajax_controller.rb (の一部)
def render_add(ar, name, partial_template_name = name) if ar.save render(:partial => "task/#{partial_template_name}", :status => 200, :locals => {name.to_sym => ar}) else (以下略)
locals でわなく locales になっていた。(とほほほ
# 直前エントリを参照してみて下さひ (恥
とりあえず現時点ではリストの追加しかできない実装。(のはず)
今からその先をもう少し写経な予定。できればエントリも入れたい。