Ruby on rails 将参数传递给';新';通过链接到的操作
Rails新手在这里,我被难住了。在Rails中,我有一个包含许多任务的项目模型。假设我有一个显示5个项目的视图,每个项目都有一个“新任务”链接,这样用户就可以将新任务添加到任何一个项目中。因此: 项目1Ruby on rails 将参数传递给';新';通过链接到的操作,ruby-on-rails,ruby,ruby-on-rails-3,link-to,Ruby On Rails,Ruby,Ruby On Rails 3,Link To,Rails新手在这里,我被难住了。在Rails中,我有一个包含许多任务的项目模型。假设我有一个显示5个项目的视图,每个项目都有一个“新任务”链接,这样用户就可以将新任务添加到任何一个项目中。因此: 项目1 新任务 项目2 新任务 等等 如果新任务链接看起来像 链接到“新任务”,新任务路径 告诉tasks controller上的“新建”操作单击了哪个链接的最佳方法是什么?我想我必须将项目id传递给新任务,但我无法解决如何做 一如既往地感谢您的帮助 取决于路由的定义方式,但如果任务被定义为项目的子
新任务 项目2
新任务 等等 如果新任务链接看起来像 链接到“新任务”,新任务路径 告诉tasks controller上的“新建”操作单击了哪个链接的最佳方法是什么?我想我必须将项目id传递给新任务,但我无法解决如何做
一如既往地感谢您的帮助 取决于路由的定义方式,但如果任务被定义为项目的子资源(如以下),那么就相当简单了
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)
正是我想要的。谢谢你的帮助。看来我必须登录才能投票给你这个答案。明天就可以了。@Ben不必这样做:
new\u project\u task\u path(:project\u id=>@project.id)
。您只需传入实例,Rails就可以处理其余部分:new\u project\u task\u path(@project)
。