gpt4 book ai didi

ruby-on-rails-3 - 设计和存储位置_为 : how do you store the return location?

转载 作者:行者123 更新时间:2023-12-03 10:13:05 27 4
gpt4 key购买 nike

我有一个页面,其路径为(例如)/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],但最好的方法是什么?
  • 用 JavaScript 装饰链接?这可以工作,但似乎很严厉。
  • 在渲染页面之前在 Premises Controller 中设置它?这似乎不对:如果用户不点击 [登录] 或 [注册] 链接怎么办?然后我将 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/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com