Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将参数传递给';新';通过链接到的操作_Ruby On Rails_Ruby_Ruby On Rails 3_Link To - Fatal编程技术网

Ruby on rails 将参数传递给';新';通过链接到的操作

Ruby 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传递给新任务,但我无法解决如何做 一如既往地感谢您的帮助 取决于路由的定义方式,但如果任务被定义为项目的子

Rails新手在这里,我被难住了。在Rails中,我有一个包含许多任务的项目模型。假设我有一个显示5个项目的视图,每个项目都有一个“新任务”链接,这样用户就可以将新任务添加到任何一个项目中。因此:

项目1
新任务

项目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)