将参数传递给“新”;通过 link_to 执行操作

发布于 2024-10-24 03:40:44 字数 313 浏览 0 评论 0原文

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

项目 1
新任务

项目 2
新任务 如果

“新任务”链接看起来像

link_to 'New Task', new_task_path

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

一如既往的帮助表示赞赏!

Rails newbie here and I'm stumped. In Rails I have a Project Model which has_many Tasks. Lets say I have a view that is displaying 5 projects and each project has a 'New Task' link so that the user can add a new task to any one of the projects. So:

Project 1
New Task

Project 2
New Task
etc.

If the New Task link looks like

link_to 'New Task', new_task_path

what is the best way to tell the 'new' action on the tasks controller which link was clicked? I figure I have to pass the project_id to the new task, but I can't solve out how to do it.

Help appreciated as always!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

方圜几里 2024-10-31 03:40:44

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

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)

Depends how your routes are defined, but if tasks are defined as a subresource of a project (such as the following) then it's pretty simple.

resources :projects do
  resources :tasks
end

This will generate routes such as:

new_project_task GET    /projects/:project_id/tasks/new(.:format)                         {:controller=>"tasks", :action=>"new"}

And then you can link to it via:

link_to 'New Task', new_project_task_path(@project)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文