2

Railsの初心者で、私は困惑しています。Rails には、has_many タスクを持つプロジェクト モデルがあります。5 つのプロジェクトを表示しているビューがあり、各プロジェクトに「新しいタスク」リンクがあり、ユーザーがプロジェクトのいずれかに新しいタスクを追加できるとします。そう:

プロジェクト 1
新しいタスク

プロジェクト2
新しいタスクなど

新しいタスクのリンクが次のようになっている場合

link_to '新しいタスク', new_task_path

タスク コントローラの「新しい」アクションにどのリンクがクリックされたかを伝える最良の方法は何ですか? project_id を新しいタスクに渡す必要があると思いますが、その方法を解決できません。

いつものように助けてください!

4

1 に答える 1

7

ルートがどのように定義されているかによって異なりますが、タスクがプロジェクトのサブリソースとして定義されている場合 (次のように)、それは非常に簡単です。

resources :projects do
  resources :tasks
end

これにより、次のようなルートが生成されます。

new_project_task GET    /projects/:project_id/tasks/new(.:format)                         {:controller=>"tasks", :action=>"new"}

そして、次の方法でリンクできます。

link_to 'New Task', new_project_task_path(@project)
于 2011-03-20T00:49:12.553 に答える