【问题标题】:Passing a parameter to a 'new' action via link_to通过 link_to 将参数传递给“新”操作
【发布时间】:2011-03-20 00:39:13
【问题描述】:

Rails 新手在这里,我很难过。在 Rails 中,我有一个包含多个任务的项目模型。假设我有一个显示 5 个项目的视图,每个项目都有一个“新任务”链接,以便用户可以向任何一个项目添加新任务。所以:

项目 1
新任务

项目 2
新任务 等等

如果新任务链接看起来像

link_to '新任务',new_task_path

告诉任务控制器上的“新”操作单击哪个链接的最佳方法是什么?我想我必须将 project_id 传递给新任务,但我无法解决如何去做。

一如既往的帮助!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 link-to


    【解决方案1】:

    取决于您的路线是如何定义的,但如果任务被定义为项目的子资源(如下所示),那么它非常简单。

    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_project_task_path(:project_id => @project.id)。你可以只传入实例,其余的由 Rails 处理:new_project_task_path(@project)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 2011-12-18
    相关资源
    最近更新 更多