Передача параметра в «новое» действие через link_to - PullRequest
2 голосов
/ 20 марта 2011

Рельсы новичок тут и я в тупике. В Rails у меня есть модель проекта, которая имеет много задач. Допустим, у меня есть представление, которое отображает 5 проектов, и каждый проект имеет ссылку «Новая задача», чтобы пользователь мог добавить новую задачу в любой из проектов. Итак:

Проект 1
Новая задача

Проект 2
Новое задание и т.д.

Если ссылка «Новая задача» выглядит как

link_to 'Новая задача', new_task_path

каков наилучший способ сообщить «новому» действию на контроллере задач, по какой ссылке щелкнули? Я полагаю, что должен передать project_id новой задаче, но не могу решить, как это сделать.

Помощь оценена как всегда!

1 Ответ

7 голосов
/ 20 марта 2011

Зависит от того, как определены ваши маршруты, но если задачи определены как подресурс проекта (например, следующий), то это довольно просто.

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)
...