首页 > 解决方案 > 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

标签: ruby-on-railsrubyruby-on-rails-6

解决方案


解决了。我必须重新启动(开发)服务器才能加载配置参数。不知道那个。

猜猜这是一个初学者的错误,但我确实觉得 Rails 文档可能对此更加明确,因为我们不必重新启动服务器来更改例如控制器。


推荐阅读