Rails 3将模型ID附加到每个链接

时间:2011-03-05 02:35:05

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

我的应用程序围绕一个事件,特别是事件的ID。每当用户导航到站点的不同部分(控制器)时,我都需要能够携带事件的ID。

我猜测在用户打开多个浏览器窗口时,在URL中包含事件的ID是首选方法。

我不想手动将事件的ID附加到每个链接。我可以创建一个帮助方法来为我做这个吗?

由于

3 个答案:

答案 0 :(得分:2)

您需要在路径文件中创建一个嵌套资源,这会在路径的开头添加类似“/ event /#eventid”的内容。然后,您可以使用params[:event_id]

从控制器访问此项

例如:

的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

...

显然最好使用之前的过滤器,但你明白了。

答案 1 :(得分:0)

您应该将其存储在会话数据中:

session[:event_id] = event_id

然后,您将能够在整个用户的会话中访问它。

<强>更新

您可能需要查看nested resources

答案 2 :(得分:0)

我建议使用thomasfedb的解决方案。如果由于任何原因无法通过覆盖url_for方法来完成此操作,例如question