Вложенный помощник Route link_to, работающий в одном месте, но не в другом

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

У меня проблема с вложенными маршрутами, которую я не могу решить. У меня есть приложение, в котором есть вложенные маршруты, подобные таким:

 resources :events do
  resources :sessions
end
  

Я пытаюсь использовать следующий link_to в своем коде:

 <%= link_to "New Session", new_event_session_path %>
  

Когда я запускаю rake routes, он покажет правильный URL с существующим методом GET:

 new_event_session GET    /events/:event_id/sessions/new(.:format)      {:action=>"new", :controller=>"sessions"}
  

Когда я пытаюсь использовать link_to в одном месте, он работает, когда я пытаюсь использовать его в другом месте, он не работает, вместо этого он выдает мне эту ошибку:

 No route matches {:controller=>"sessions", :action=>"new"}
  

Единственное различие между двумя файлами заключается в расположении файлов в приложении (один находится в разделе просмотры / события, другой — в разделе просмотры / сеансы и вызываемый URL:

/события/1 —vs— /события/1/сеансы

Я все еще новичок в rails, так что это, вероятно, глупый вопрос, но я немного наткнулся на стену. Любая помощь приветствуется.

Ответ №1:

Вам просто нужно передать объект event помощнику path:

 new_event_session_path(@event)