【问题标题】:Custom configuration in rails 3rails 3中的自定义配置
【发布时间】:2011-11-05 16:47:33
【问题描述】:

背景

我正在写一个照片库,该库可以创建预览和缩略图。

我希望用户自定义这些(分辨率等)的创建

到目前为止我所拥有的

  • config/gallery.yml - 存储实际设置,每个环境的一个块
  • config/initializers/gallery.rb - 将 YAML 文件加载到 Gallery::Application
  • app/models/image.rb - 读取配置并创建图像的模型

我的问题

将设置与默认值合并的最佳位置在哪里?
我可以在gallery.rbimage.rb 中实际使用它。

否则,这是一种理智的方法还是我做错了?
非常感谢任何反馈。

文件

config/initializers/gallery.yml

production:
  create_previews: true
  create_thumbnails: true

development:
  create_thumbnails: true
  create_previews: true

test:
  create_thumbnails: false
  create_previews: false

config/initializers/gallery.rb

Gallery::Application.config.image_directory = File.join(Rails.root, 'images')
Gallery::Application.config.thumbnail_directory = File.join(Rails.root, 'thumbnails')
Gallery::Application.config.preview_directory = File.join(Rails.root, 'previews')

# DO NOT MODIFY THE LINES BELOW

EXTERNAL_CONFIG_FILE_PATH = "#{Rails.root}/config/gallery.yml"

if FileTest.exists? EXTERNAL_CONFIG_FILE_PATH
  vals = YAML.load_file(EXTERNAL_CONFIG_FILE_PATH)[::Rails.env]
else
  vals = {}
end

Gallery::Application.config.create_previews = vals['create_previews']
Gallery::Application.config.preview_settings = vals['preview_settings']

Gallery::Application.config.create_thumbnails = vals['create_thumbnails']
Gallery::Application.config.thumbnail_settings = vals['thumbnail_settings']

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 configuration


    【解决方案1】:

    我也同意这是配置/初始化程序的好地方。 但其他地方和方式是使用 MySQL 在 GalleryConfig ActiveRecord 模型中读/写数据库表字段。 因为很容易用于测试用例或 Rails 控制台。

    【讨论】:

    • 我不想将我的设置存储在数据库中,至少现在不想。如果我想通过网站更改设置,我可能会在稍后添加它。
    猜你喜欢
    • 2011-03-16
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多