gpt4 book ai didi

ruby-on-rails - 在模型中使用 Rails 应用程序配置变量

转载 作者:行者123 更新时间:2023-12-03 16:02:36 25 4
gpt4 key购买 nike

我在我的 Rails 应用程序(APP_CONFIG 哈希)中定义了自定义配置变量。好的,现在如何在我的模型中使用这些变量?在模型中直接调用 APP_CONFIG['variable'] 是一种非 rails 方式!例如,我可以在没有 Rails 环境的情况下使用这些模型。那么APP_CONFIG 没有被定义。

ATM 我使用模型观察器并为全局配置变量分配实例变量,如下所示:

def after_initialize model
Mongoid.observers.disable :all do
model.user_id = APP_CONFIG['user_id'])
model.variable = User.find(model.user_id).variable
end
end

但是这个解决方案看起来像一个猴子补丁。有更好的方法吗?

或者我应该保持简单,可以在新应用程序(不是 Rails 应用程序)中定义 APP_CONFIG 哈希?

最佳答案

我会使用依赖注入(inject)。如果您有一个需要各种配置值的对象,您可以通过构造函数注入(inject)配置对象:

class Something
def initialize(config = APP_CONFIG)
@config = config
end
end

如果配置只需要一个方法,只需将其传递给方法:
def something(config = APP_CONFIG)
# do something
end

Ruby 在调用方法时评估参数。默认值允许您在开发/生产中使用配置对象,而无需手动将其传递给方法,并在测试中使用 stub 而不是实际配置。

除了定义另一个全局变量/常量之外,您还可以 use the Rails config反而:
def something(config = Rails.config)
# do something
end

关于ruby-on-rails - 在模型中使用 Rails 应用程序配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11724285/

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