Rails 3.1 Ошибка маршрутизации - PullRequest
2 голосов
/ 25 июля 2011

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

Я получаю ошибку: ОШИБКА МАРШРУТА Не найдено ни одного маршрута {: action => "create_from_template",: controller => "projects"}

с помощью следующей кнопки:

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

В rout.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>

и теперь это работает. Спасибо всем, кто помог.

Ответы [ 2 ]

4 голосов
/ 25 июля 2011

попробуйте отправить проект по пути рядом с link_to

3 голосов
/ 25 июля 2011

Если вам не нужно передавать проект для создания действия шаблона, измените кнопку на: `

 <%= link_to "Create from template", create_from_template_projects_path %> 
В маршрутах вместо
member do 
следует использовать
collection do 

Если вы используете member do в rout.rb, тогда вам нужно передать проект в link_to, как упомянул Прасвин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...