gpt4 book ai didi

ruby-on-rails-4 - 如何在 Rails 中创建和使用像 current_user (devise) 这样的全局变量?

转载 作者:行者123 更新时间:2023-12-01 10:45:04 25 4
gpt4 key购买 nike

在我的项目中,我需要使用一个全局变量,例如 devise (current_user) 之一,因为在 ability.rb 中我想知道他位于哪个项目中。类似 current_project 的东西。可能是 session 的一个属性,比如 project_id。
有人做过这样的事情吗?非常感谢!

最佳答案

试试这个 :
您实际上需要将变量存储在 session 中。
以 current_user 为例: -
在您的应用程序 Controller (/app/controllers/application_controller.rb ) 中添加一个辅助方法,如下所示:

 class ApplicationController < ActionController::Base

protect_from_forgery

helper_method :current_user

private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
end

current_user 方法通过其 id 获取当前用户,使用来自 session 变量的 id,并将结果缓存在实例变量中。我们也将使它成为一个辅助方法,以便我们可以在应用程序的 View 代码中使用它。

引用 - http://railscasts.com/episodes/250-authentication-from-scratch?view=asciicast

关于ruby-on-rails-4 - 如何在 Rails 中创建和使用像 current_user (devise) 这样的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27348821/

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