Ошибка маршрутизации Rails 3.1
-
25-10-2019 - |
Вопрос
У меня есть ошибка маршрутизации, которую я просто не могу понять! Он делает мою голову, если кто -то может предложить решение, которое было бы очень оценено.
Я получаю ошибку: ошибка маршрутизации без маршрута соответствует {: action => "create_from_template" ,: controller => "projects"}
из следующей кнопки:
<p><%= link_to "Create from template", create_from_template_project_path %></p>
На routes.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 вы должны передать проект в Link_to, как упоминал Прасвин
Другие советы
Попробуйте отправить проект по пути вместе с Link_to