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 になっていた。(とほほほ
# 直前エントリを参照してみて下さひ (恥

とりあえず現時点ではリストの追加しかできない実装。(のはず)
今からその先をもう少し写経な予定。できればエントリも入れたい。