Rails正在向后路由我的calendar_event_path



Rails给我的url的id顺序不正确。它将父id交给子id,将子id交给父id。

在我的路线上。rb我有

resources :calendars do
  resources :events
end

rake routes告诉我正在建立良好的路线,例如

calendar_event GET    /calendars/:calendar_id/events/:id(.:format)      {:controller=>"events", :action=>"show"}

因此,当我从我的观点部分询问该路线的路径时,

<%= link_to "#{event.name} @ #{event.calendar.name} #{event.calendar.year}", calendar_event_path(event) %>

它给了我一个颠倒了id的url。。。

http://localhost:3000/calendars/<-eventid->/events/<-calendarid->

任何帮助都将不胜感激!!!

编辑:在我的模型中,事件belongs_to :calendar和日历has_many :events。我也使用Mongoid作为我的ORM,而不是ActiveRecord,尽管我希望这不是问题所在。

当您使用嵌套资源的URL助手calendar_event_path时,您还需要为其提供calendar对象(或ID),例如:

 calendar_event_path(event.calendar, event)

另一种选择是:

 <%= link_to "#{event.name} @ #{event.calendar.name} #{event.calendar.year}", [event.calendar, event] %>

如果将:id重命名为另一个名称,会更改生成的链接吗?我认为默认情况是在参数中使用:id来标识link_to中指定的资源。

相关内容

  • 没有找到相关文章

最新更新