ruby-on-rails - Rails 模型不采用配置值
问题描述
我创建了一个自定义配置参数,但不知何故我的用户模型无法访问它的值。
在configuration.rb
:
config.x.user.starting_cash = 50
在我的用户模型中:
# Create wallet for each new user
after_create :create_wallet
# Block for creating a new wallet for each new user
def create_wallet
@wallet = Wallet.new(user_id: self.id, cash: Rails.configuration.x.user.starting_cash)
@wallet.save
end
它确实为新用户创建了一个钱包,但 的值为cash
空而不是50
。当手动将 cash 设置为 50 的 int 时,它工作得很好:
@wallet = Wallet.new(user_id: self.id, cash: 50)
当我在 Rails 控制台中访问配置参数时,它按预期工作:
2.6.3 :022 > Rails.configuration.x.user.starting_cash
=> 50
我搜索过的解决方案文档包括:https ://guides.rubyonrails.org/configuring.html#custom-configuration
解决方案
解决了。我必须重新启动(开发)服务器才能加载配置参数。不知道那个。
猜猜这是一个初学者的错误,但我确实觉得 Rails 文档可能对此更加明确,因为我们不必重新启动服务器来更改例如控制器。
推荐阅读
- c# - 为什么数据不从视图传递到控制器
- flutter - 在 Flutter 中使用 ImagePicker 构建函数返回 NULL
- symfony - Symfony 5:使用 make:auth Authenticator 的非持久用户
- python - Discord.py 条件变量
- javascript - 是否可以在 Javascript 中创建一个非长度前缀的缓冲区?
- python - 在套接字上的聊天中发送文件时出错。Python
- python - BeautifulSoup AttributeError 'collections' 没有属性 'Callable'
- android - 从 EditText 字段中添加两个数字
- python - 在不刷新页面的情况下将提交数据发送到 Flask
- laravel - 在 Laravel 中将表连接在一起并在刀片中检索的正确方法