从 Controller 更新 rails 配置文件

Update rails config file from Controller

我在 rails 上有一个应用程序 运行,它从 yaml 文件加载配置。我正在尝试找出从控制器更新它的最佳方法,或者我应该为我的配置使用 ActiveModel 吗?

配置基于此处的答案: Accessing config from application.rb in Controller (Rails 3)

config/my_app_config.yaml 包含配置。

config/initializerz/app_config.rb 中的初始化程序加载此:

AppConfig.config = YAML.load_file("config/my_app_config.yaml")[Rails.env].symbolize_keys

我可以轻松地从控制器访问此配置并通过访问 MyAppConfig.config[:key_name] 在视图中显示它,并根据用户输入更新它,但是有推荐的方法吗将配置哈希写回配置文件?

恕我直言,应该避免。如果您的配置的性质是动态的(随时间变化),那么您应该在读取用户数据或其他任何内容时从数据库中读取它。 如果它是静态的,那么您可以将其保存在哈希中(YAML 文件,当配置更改时,您只需部署您的应用程序)。如果设置经常更改,我会推荐 db.