在我的域中,用户选择要编辑的 Universe,然后可以查看/编辑/销毁等与他们选择的 Universe 关联的模型。基本上,整个网站取决于您当前正在查看的宇宙。
我刚刚在参数中传递了哪个宇宙,但这很快就变得难以处理。是否有一种 Rails 标准方法来跟踪用户选择的最后一个 Universe 是什么?我应该将这些信息存储在某种 cookie 中吗?我应该制作某种奇怪的单例模型来保存数据吗?有没有办法使用 Session (就像你跟踪哪个用户登录一样)?
在我的域中,用户选择要编辑的 Universe,然后可以查看/编辑/销毁等与他们选择的 Universe 关联的模型。基本上,整个网站取决于您当前正在查看的宇宙。
我刚刚在参数中传递了哪个宇宙,但这很快就变得难以处理。是否有一种 Rails 标准方法来跟踪用户选择的最后一个 Universe 是什么?我应该将这些信息存储在某种 cookie 中吗?我应该制作某种奇怪的单例模型来保存数据吗?有没有办法使用 Session (就像你跟踪哪个用户登录一样)?
您的路线是如何设置的?对任何此类依赖项使用嵌套路由:
resources :universes do
resources :planets
resources :spaceships
end
然后,您页面的 url 如下所示:
www.somedomain.com/:universe_id/planets/:planet_id/edit?param=1¶m2=2
然后,您始终可以使用 Universe id,并且可以在 ApplicationController 中使用 before_filter 来调用在任何操作之前加载 Universe 的函数,因此您始终可以使用 @universe 而无需任何工作。
当然,您仍然必须将宇宙添加到您的链接中,但这也可以通过创建利用您始终存在的 @universe 对象的辅助方法来自动化。为这些资源路由创建的默认助手看起来像edit_universe_planet_path(@universe, planet.id)