2011-12-10 6 views
2

Ruby on Railsのコードに問題があります。私はネストされたリソース(List has_many TasksとTask belongs_to List)のデータ構造を持っています。Ruby on Rails link_toの代わりにIndexに向ける

<td><%= link_to 'Show Task', list_tasks_path(@list, task) %></td> 

アイデアは、このページには、私は、個々のタスクの詳細を表示することができ、「ショー」ページにリンクするということです。私のList.showページでは、私は次のコード行を持っています。私は、URLは、基本的になりたい

/lists/:list_id/tasks/:task_id 

問題は、上記のコードは、タスクのインデックスページに

/lists/:list_id/tasks.task_id 

に私を演出していることです。代わりにRailsに私をショーページに送るように伝えることができますか?

show_list_tasks_path(@list、task)を使用するだけでなく、action => showおよび:controller =>タスクを追加しようとしました。/list /:list_id/tasks /:task_idを手動で入力すると、私のshowページがうまく動作するので、構造自体がそこにあることも知っています。

何か助けていただければ幸いです。ありがとうございました!

-Sum

+0

あなたのルートはどのように見えますか? 'list_task_path'は(list_tasks_pathの代わりに)何をするのですか? –

答えて

2

ここでの問題は、あなたがlist_task_pathを使用する必要があるときは、​​を使用していることです。

​​メソッドは、既に知っているとおり、indexアクションのURLを生成し、2番目の引数をこのリクエストのフォーマットにします。

詳細については、Routing Guideを参照してください。このURLを指定する

+0

助けてくれてありがとう!また、参考Webサイトに感謝します。 –

+0

'rake routes'の出力は非常に便利です。 – d11wtq

2

簡単な方法は、あなたがまたlist_task_path(@list, task)を行うことができます

<%= link_to 'Show Task', [@list, task] %> 

だろう(代わりにタスクタスクに気づきます)。

rake routesを実行すると、ルートにレールが生成されます。

関連する問題