我的应用程序围绕一个事件,特别是事件的ID。每当用户导航到站点的不同部分(控制器)时,我需要能够携带该事件的ID。Rails 3将模型ID附加到每个链接
我猜在URL中包含事件的ID是用户打开多个浏览器窗口的首选方法。
我不想手动追加事件的ID到每个链接。有没有可以帮助我做到这一点的辅助方法?
感谢
我的应用程序围绕一个事件,特别是事件的ID。每当用户导航到站点的不同部分(控制器)时,我需要能够携带该事件的ID。Rails 3将模型ID附加到每个链接
我猜在URL中包含事件的ID是用户打开多个浏览器窗口的首选方法。
我不想手动追加事件的ID到每个链接。有没有可以帮助我做到这一点的辅助方法?
感谢
您需要在您的路径文件中创建一个嵌套资源,这会在您的路径的开头添加诸如“/ event /#eventid”之类的内容。
的routes.rb
resources :events do
# Other controllers routes go here
end
controller_whatever.rb
def index
@whatever = Event.find(params[:event_id]).whatever.all
end
...
显然,这将是最好的过滤器之前,使用一个:你可以再从你的控制器与params[:event_id]
例如访问此,但你明白了。
我推荐使用thomasfedb的解决方案。如果由于任何原因而无法完成,可以通过覆盖url_for方法来完成,如question
由于用户可以管理多个事件,所以恐怕他们会尝试在浏览器中打开2个标签页编辑2个不同的事件。如果我使用会话变量,那么这将会扰乱2个选项卡之间的数据完整性。 – Mike 2011-03-05 02:49:52