Rails 3应用程序/用户设置最佳实践?

时间:2010-11-29 17:39:00

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

我目前需要允许管理员可配置的全局设置以及Rails 3应用程序中的每用户可配置设置。

是否有适用于这种情况的宝石或最佳实践?

我发现了一些宝石和博客文章,但它们都可以追溯到2006-08,并且不再维护。任何指针都将不胜感激,谢谢。

注意:我已经看到this question带有序列化哈希响应,但在我的特定情况下,需要根据用户的设置查询数据库的能力 - 我认为序列化哈希不会在那种情况。

4 个答案:

答案 0 :(得分:19)

在寻求帮助之后,我的搜索始终如一。找到Georg Ledermann's fork of rails-settings看起来就像我需要的那样。

答案 1 :(得分:4)

我不确定是否会为此功能寻找库。

对于全局设置,我将创建一个config / application.yml文件并在environment.rb中读取它并将其设置为APP_CONFIG全局。然后,我将通过使用json编码设置哈希向用户表添加文本列来基于每个用户覆盖这些设置。向抓取APP_CONFIG的用户模型添加方法,并对解码的用户设置进行深度合并。

另一种选择是创建一个设置表,其中包含user_id列和每个设置的列。具有null user_id的一行将表示全局设置。如果当前用户存在一行,则任何非零值都将覆盖全局设置行。

答案 2 :(得分:2)

也许还想看看https://github.com/railsjedi/rails_config。其中有许多功能:

  • Global settings.yml
  • 每个环境设置文件(settings / development.yml,settings / production.yml等)
  • 本地设置文件(settings.local.yml,settings / development.local.yml等)
  • 嵌入式ERB支持
  • Rails 3 / Padrino / Sinatra支持

答案 3 :(得分:0)

对于rails 4,如果您使用的是postgresql,则可以使用HStore,这就像一个可序列化的属性,但您可以使用它进行SQL查询。

对于rails 3,您可以使用activerecord-postgres-hstore gem。