我即将实现编辑项目的功能,但我无法获得工作路线。
路由.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"}
edit_project_path
不知道要编辑哪个项目。这个路由助手将获取一个Project
实例,然后像/projects/1/edit
一样将其路由到该实例。也许你打算用projects_path
?
projects_path
方法将转到ProjectsController's
index
操作,在这里(通常)为项目列表提供了在该页面上编辑它们的链接。
您需要传入正在编辑的项目的记录。在你的show.html.erb中,你最好有这样的东西;
<%= link_to "Manage project", edit_project_path(@project) %>
和在你的控制器
def show
Product.find(params[:id])
end