我目前需要允许管理员可配置的全局设置以及Rails 3应用程序中的每用户可配置设置。
是否有适用于这种情况的宝石或最佳实践?
我发现了一些宝石和博客文章,但它们都可以追溯到2006-08,并且不再维护。任何指针都将不胜感激,谢谢。
注意:我已经看到this question带有序列化哈希响应,但在我的特定情况下,需要根据用户的设置查询数据库的能力 - 我认为序列化哈希不会在那种情况。
答案 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。其中有许多功能:
答案 3 :(得分:0)
对于rails 4,如果您使用的是postgresql,则可以使用HStore,这就像一个可序列化的属性,但您可以使用它进行SQL查询。
对于rails 3,您可以使用activerecord-postgres-hstore gem。