我有一个页面,其路径为(例如)/premises/92,如果用户未登录,我将在该页面上显示“请[登录] 或 [注册] 以获取其他信息”,并且我希望设计返回相同的信息用户登录后的/premises/92 页。
我读过其他帖子,我想我明白如何设计 stored_location_for
应该可以工作。理论上,我可以把这样的东西放在我的 ApplicationController
中。 :
def stored_location_for(resource)
if (r = session[:return_to])
session[:return_to] = nil
r
else
super
end
end
我的问题是:如何/在哪里设置 session[:return_to]?
我只想在用户点击 [log in] 或 [register] 时设置 session[:return_to],但最好的方法是什么?
?return_to=/premises/92
查询字符串到 [log in] 和 [register] 链接,并在 RegistrationsController 和 SessionsController 中检测它并使用该信息来设置 session[:return_to]?这似乎可行,但也很严厉。 这些味道都不对。为stored_location_for 设置状态的普遍接受的技术是什么?
最佳答案
设计使用
session["#{scope}_return_to"]
所以你可以使用
session["user_return_to"]
如果您的身份验证模型是用户。
关于ruby-on-rails-3 - 设计和存储位置_为 : how do you store the return location?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028025/