Rails Settings Cached 使用教程
项目介绍
rails-settings-cached
是一个用于在 Rails 应用程序中管理全局设置的 gem。它允许你将全局键值对存储在数据库中,并提供了类似于 ActiveRecord 的方法来操作这些设置。这个 gem 非常适合那些不想在 Rails 应用中硬编码全局设置的开发者。
项目快速启动
安装
首先,在你的 Gemfile 中添加 rails-settings-cached
:
gem 'rails-settings-cached'
然后运行 bundle 安装:
bundle install
生成设置
接下来,生成设置文件:
rails g settings:install
你也可以使用自定义名称:
rails g settings:install AppConfig
这会生成 app/models/setting.rb
文件,内容如下:
class Setting < RailsSettings::Base
cache_prefix ["v1"]
scope :application do
field :app_name, default: "Rails Settings", validates: { presence: true, length: { in: 2..20 } }
field :host, default: "http://example.com", readonly: true
field :default_locale, default: "zh-CN", validates: { presence: true, inclusion: { in: %w[zh-CN en jp] } }
field :admin_emails, type: :array, default: %w[admin@rubyonrails.org]
field :welcome_message, type: :string, default: -> { "welcome" }
end
end
使用设置
你可以在应用程序中使用这些设置,例如:
Setting.app_name
Setting.host
Setting.default_locale
Setting.admin_emails
Setting.welcome_message
应用案例和最佳实践
应用案例
rails-settings-cached
被广泛应用于各种开源项目中,例如:
ruby-china/homeland
forem/forem
siwapp/siwapp
aidewoode/black_candy
huacnlee/bluedoc
getzealot/zealot
kaishuu0123/rebacklogs
texterify/texterify
mastodon/mastodon
helpyio/helpy
daqing/rabel
最佳实践
-
缓存管理:使用
cache_prefix
来管理缓存,确保在更新设置时缓存能够正确失效。 -
只读设置:对于一些不应该被修改的设置,使用
readonly: true
来保护它们。 -
验证:为设置添加验证,确保设置的值符合预期。
典型生态项目
rails-settings-cached
是 Rails 生态系统中的一个重要组成部分,它与其他 gem 和工具一起,为开发者提供了强大的配置管理功能。以下是一些典型的生态项目:
- ActiveSupport::Cache::RedisCacheStore:用于将缓存存储在 Redis 中,提高缓存性能。
- ActiveRecord::AttributeMethods::Serialization:用于序列化复杂对象,使其能够存储在数据库中。
通过这些工具和 gem 的结合使用,开发者可以构建出高效、灵活的 Rails 应用程序。