我目前需要在Rails 3应用程序中允许管理员配置全局设置以及每个用户可配置的设置。
是否有适用于这种情况的gem或最佳实践?
我找到了一些gem和博客文章,但它们都可以追溯到2006-08年,并且已不再维护。任何指针都将不胜感激,谢谢。
注意:我看过这个问题,其中包含序列化哈希响应,但在我的特定情况下,需要能够根据用户的设置查询数据库 - 我认为序列化哈希在那种情况下不太适用。
我目前需要在Rails 3应用程序中允许管理员配置全局设置以及每个用户可配置的设置。
是否有适用于这种情况的gem或最佳实践?
我找到了一些gem和博客文章,但它们都可以追溯到2006-08年,并且已不再维护。任何指针都将不胜感激,谢谢。
注意:我看过这个问题,其中包含序列化哈希响应,但在我的特定情况下,需要能够根据用户的设置查询数据库 - 我认为序列化哈希在那种情况下不太适用。
我不确定是否需要查找一个库来完成这个功能。
对于全局设置,我会创建一个config/application.yml文件,并在environment.rb中读取它,然后将其设置为APP_CONFIG全局变量。然后,我会通过向用户表添加一个文本列和json编码的设置哈希值来覆盖这些设置。添加一个方法到用户模型中,该方法获取APP_CONFIG并在解码的用户设置上执行深度合并。
另一个选择是创建一个设置表,其中包含一个user_id列和每个设置的列。一行具有空的user_id表示全局设置。如果当前用户存在一行,则任何非空值都将覆盖全局设置行。
您可能还想看看https://github.com/railsjedi/rails_config。它有很多功能,包括:
对于Rails 4,如果您正在使用PostgreSQL,可以使用HStore,它就像一个可序列化的属性,但您可以使用SQL查询它。
对于Rails 3,您可以使用activerecord-postgres-hstore gem。