我有一个路由错误,我根本不知道!如果有人可以提出一个非常感谢的解决方案,它就使我头脑着。

我得到错误:路由错误没有路由匹配{:action =>“ create_from_template”,:controller =>“ projects”}

从以下按钮:

<p><%= link_to "Create from template", create_from_template_project_path %></p>

在路由中。rb我有:

  resources :projects do
    member do
      get 'create_from_template'
    end
  end

在课堂projectscontroller中,我有:

  def create_from_template
    #@project = Project.find(params[:template_id])
    #@project.clone
    redirect_to projects_path
  end

当我做“耙路”时,它也会显示

create_from_template_project GET    /projects/:id/create_from_template(.:format) {:action=>"create_from_template", :controller=>"projects"}

有人知道为什么它不起作用吗?

编辑:实际上,也许我误解了“成员”嵌套的资源路由规则。我没有通过一个项目。我已经更改了从

   <p><%= link_to "Create from template", create_from_template_project_path(template_project) %></p>

现在它起作用了。感谢所有帮助的人。

有帮助吗?

解决方案

如果您不需要通过项目来创建模板操作,请更改按钮:

 <%= link_to "Create from template", create_from_template_projects_path %> 
在路线中,而不是
 member do 
您应该使用
 collection do 

如果您使用 member do 在routes.rb中,您应该像Prasvin提到的那样通过link_to中的项目

其他提示

尝试与link_to一起将项目发送到路径中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top