[Associations] create a task for a project from project index view

Hello,

Let say, i have an association between a project and a task.
A project has_many taks and a task belongs_to a project.
My model is working great.
I can create tasks from project and so on but my problem comes when i
want to add a button on the project index view to add task to a
project.

What i want is something like that
(project index view)

Project 1 Show, edit, destroy, add_task
Project 2 Show, edit, destroy, add_task

So that when i click add_task of project1 i’m redirected to a new task
form to create a task for that project.

i’ve added <%= link_to ‘add_task’, new_task_path(:project_id =>
project) %> in the project index view

so when i click on add_task, it redirects me to /task/new?project_id=1

but when i submit the task, the task is not linked to the project.
How can i get the project_id?

Does anyone has a tutorial or an example of how should i do?

Thanks,

jeff

On Jun 25, 12:04pm, Jean-Francois L. [email protected] wrote:

(project index view)
so when i click on add_task, it redirects me to /task/new?project_id=1

but when i submit the task, the task is not linked to the project.
How can i get the project_id?

Short answer: your form needs to submit it.

Typically one does this by having routes that look like

resources projects do
resources :tasks
end

then new_project_task_path(some_project) will be /projects/123/tasks/
new

and you’ll get params[:project_id] set to 123

if you set @project based on this and make your form something like

form_for [@project, Task.new] do |f|

then the form will be posted to /projects/123/tasks and you will once
again have params[:project_id] set to 123 for you.

Fred