-
25-10-2019 - |
题
我有一个路由错误,我根本不知道!如果有人可以提出一个非常感谢的解决方案,它就使我头脑着。
我得到错误:路由错误没有路由匹配{: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一起将项目发送到路径中
不隶属于 StackOverflow