嵌套路由link_to帮助器在一个地方工作但不在另一个地方工作

时间:2011-05-01 19:47:03

标签: ruby-on-rails ruby-on-rails-3

我有一个我无法弄清楚的嵌套路由问题。我有一个具有嵌套路线的应用程序:

resources :events do
  resources :sessions
end

我正在尝试在我的代码中使用以下link_to:

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

当我运行rake路线时,它会显示存在GET方法的正确URL:

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

当我尝试在一个地方使用link_to时,当我尝试在另一个地方使用它时它没有,它反而会给我这个错误:

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

两个文件之间的唯一区别是应用程序中文件的位置(一个在视图/事件下,另一个在视图/会话下,并且被调用的URL:

/ events / 1 --vs-- / events / 1 / sessions

我仍然是一个带铁轨的菜鸟,所以这可能是一个愚蠢的问题,但我已经打了一个墙。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您只需要将事件对象传递给路径助手:

new_event_session_path(@event)