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

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

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

我发现了几个gem和博客文章,但它们都可追溯到2006-08,不再维护。 任何指针都将不胜感激,谢谢。

注意:我已经看到了序列化哈希响应的这个问题 ,但在我的特定情况下,需要根据用户的设置查询数据库的能力 – 我认为序列化哈希在这种情况下不会很好。

在寻求帮助之后,我的搜索始终如一。 找到了Georg Ledermann的rails-rails设置 ,它看起来就像我需要的那样。

不确定我会为这个function寻找一个库。

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

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

也可以查看https://github.com/railsjedi/rails_config 。 其中有许多function:

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

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

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