轨道上的红宝石 - 预定义的路线不起作用,为什么?



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

路由.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

相关内容

  • 没有找到相关文章

最新更新