Вопрос

У меня есть ошибка маршрутизации, которую я просто не могу понять! Он делает мою голову, если кто -то может предложить решение, которое было бы очень оценено.

Я получаю ошибку: ошибка маршрутизации без маршрута соответствует {: 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top