2011-12-11 9 views
2

の原因のform_for、私は仕事のために、次のedit.html.erbファイルを持っていますコード:RubyのRailsのコード上で私のRubyでは、パスエラー

<%= form_for @task do |f| %> 
    <%= fl.label :title %><br /> 
<% end %> 

問題は、編集ページに移動しようとするとエラーが発生することです。エラーは "undefined task_path"と表示されるので、私はRailsが自分のタスクへのパスを正しく識別していないと伝えることができます。

プログラムの構造は、多くのタスクを持つリストがあり、各タスクにはリストがあります。 routesファイルは、このように構造体を宣言する:LIST_ID /タスク/::TASK_ID /編集

resources :lists do 
    resources :tasks 
end 

にはどうすればいいのform_forは私が/リスト/でタスクを編集しようとしていますことを識別するのですか?

ありがとうございました!

答えて

6

あなたはNested Resourcesを使用しています。これは、フォームを使用する適切な方法は、親を指定することです。

<%= form_for [@list, @task] do |f| %> 
    <%= f.label :title %><br /> 
<% end %> 
+1

これを見つけた人にはちょうどノートでは、私が行ったように、ネストされたリソース_whichのヘルプを探しているという名前の変数route_を持っている:あなたが指定する必要がありますので、Railsは、配列からフォームのURLを推測することはできませんURLは明示的に 'form_for(@task、url:my_custom_named_list_task_path(@list))'のようなものです。以下のとおり:http://stackoverflow.com/questions/1159107/rails-nested-resource-issue – Leo

関連する問題