首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在控制器上获取sorcery.rb变量

如何在控制器上获取sorcery.rb变量
EN

Stack Overflow用户
提问于 2020-08-14 03:11:05
回答 2查看 141关注 0票数 0

我在Rails 6应用程序中使用魔法宝石。

我需要在控制器的sorcery.rb中使用变量,但是我不知道如何获得值。

代码语言:javascript
复制
Rails.application.config.sorcery.submodules = [:user_activation]
Rails.application.config.sorcery.configure do |config|
  config.user_config do |user|
    user.activation_token_expiration_period = 60 * 60 * 24 * 7 # <= this
  end
end

我怎么能拿到这个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-14 11:39:25

如果您有一个User实例,您可以这样做:

代码语言:javascript
复制
User.new.sorcery_config.activation_token_expiration_period
票数 0
EN

Stack Overflow用户

发布于 2020-08-14 04:16:43

您可以将此令牌过期期保留在配置文件中,并在任何需要的地方使用。有许多方法可以设置配置(我喜欢的方法是):

在配置文件夹中添加一个config.yml文件:

代码语言:javascript
复制
defaults: &defaults
  activation_token_expiration_period: 60 * 60 * 24 * 7
development:
  <<: *defaults
test:
  <<: *defaults
production:
  <<: *defaults

然后在application.rb文件中,您可以这样做:

代码语言:javascript
复制
APP_CONFIG = YAML.load_file('config/config.yml')[Rails.env]

然后在应用程序的任何地方使用它,如下所示:

代码语言:javascript
复制
APP_CONFIG['activation_token_expiration_period']

所以在你的情况下,你可以这样做:

代码语言:javascript
复制
Rails.application.config.sorcery.configure do |config|
  config.user_config do |user|
    user.activation_token_expiration_period = APP_CONFIG['activation_token_expiration_period']
  end
end

您可以以任何方式设置此配置(您可能已经在应用程序中设置了此配置),主要建议是使用一个环境变量来存储此值,并在需要时在应用程序中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63405971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档