0

我即将实现编辑项目的功能,但我无法获得工作路线。

路线.rb:

Ampta::Application.routes.draw do
  get "home/index"

  resources :projects
  resources :tickets
  resources :projects_users
  resources :users

  ...
end

链接到路径的视图:

...
<%= link_to "Show tickets", tickets_path%><br/>
<%= link_to "Manage projects", edit_project_path %><br/> // <--- The link
<%= link_to "Log out", signout_path, method: "delete"%>
...

(我已经在项目控制器中定义了“编辑”操作,但它还没有包含任何代码。)

运行 rake 路由时,路由就在那里,为什么我会收到以下错误,说明情况并非如此:

No route matches {:action=>"edit", :controller=>"projects"}
4

2 回答 2

2

edit_project_path不知道您要编辑哪个项目。此路由助手将获取一个Project实例,然后将其路由到 like /projects/1/edit。也许您打算使用projects_path?

projects_path方法将ProjectsController's index采取行动,这是(通常)提供项目列表的地方,其中包含在该页面上编辑它们的链接。

于 2013-02-10T20:25:41.953 回答
2

您需要传入正在编辑的项目的记录。在你的 show.html.erb 中,你最好有类似的东西;

<%= link_to "Manage project", edit_project_path(@project) %>

在你的控制器中

def show
  Product.find(params[:id])
end
于 2013-02-10T20:27:34.457 回答