如何在控制器的 sorcery.rb 中获取变量
How to get variable in sorcery.rb at controller
我在 Rails 6 应用程序中使用魔法 gem。
我需要在控制器中使用 sorcery.rb 中的变量,但是我不知道如何获取该值。
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
我怎样才能得到这个?
您可以将此令牌有效期保留在配置文件中,并在需要的任何地方使用它。您可以通过多种方式设置配置(我的首选方式是):
在配置文件夹中添加一个 config.yml
文件:
defaults: &defaults
activation_token_expiration_period: 60 * 60 * 24 * 7
development:
<<: *defaults
test:
<<: *defaults
production:
<<: *defaults
然后在 application.rb
文件中你可以这样做:
APP_CONFIG = YAML.load_file('config/config.yml')[Rails.env]
然后像这样在应用程序的任何地方使用它:
APP_CONFIG['activation_token_expiration_period']
所以在你的情况下你可以这样做:
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
您可以以任何方式设置此配置(您可能已经在您的应用程序中设置了此配置),主要建议是使用环境变量来存储此值并在需要的应用程序中使用它。
如果您有 User
的实例,您可以这样做:
User.new.sorcery_config.activation_token_expiration_period
我在 Rails 6 应用程序中使用魔法 gem。
我需要在控制器中使用 sorcery.rb 中的变量,但是我不知道如何获取该值。
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
我怎样才能得到这个?
您可以将此令牌有效期保留在配置文件中,并在需要的任何地方使用它。您可以通过多种方式设置配置(我的首选方式是):
在配置文件夹中添加一个 config.yml
文件:
defaults: &defaults
activation_token_expiration_period: 60 * 60 * 24 * 7
development:
<<: *defaults
test:
<<: *defaults
production:
<<: *defaults
然后在 application.rb
文件中你可以这样做:
APP_CONFIG = YAML.load_file('config/config.yml')[Rails.env]
然后像这样在应用程序的任何地方使用它:
APP_CONFIG['activation_token_expiration_period']
所以在你的情况下你可以这样做:
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
您可以以任何方式设置此配置(您可能已经在您的应用程序中设置了此配置),主要建议是使用环境变量来存储此值并在需要的应用程序中使用它。
如果您有 User
的实例,您可以这样做:
User.new.sorcery_config.activation_token_expiration_period