Dha*_*udi 46 ruby-on-rails preferences
我已经看到两种不同的方法来保存用户首选项.
方法1: 序列化它们并保存在USERS表的一列中
方法2: 创建一个单独的表PREFERENCES并从USERS到PREFERENCES建立一个has_many关联.
您更喜欢上述两种方法中的哪一种,以及每种方法的优缺点是什么?
Tur*_*adg 20
我努力解决同样的问题,所以我想我会分享我在"社区维基"中找到的答案.
您的Rails应用程序的简单用户首选项是一篇描述如何执行此操作的博客文章.
在表单中编辑序列化哈希?描述了如何在表单中编辑这样的哈希.一个有用的技巧是使表单从OpenStruct.new(@user.preferences)哈希自动为每个哈希属性创建访问器方法.
DYE/has_serialized - GitHub允许您将序列化哈希中的这些属性视为(用户)模型上的属性.
存储用户设置的最佳做法?有一些提示.下面是一些库,包括@hopeless的另一个回答中的两个.
您还可以尝试使用元编程: Ruby实用元编程:存储首选项
如果您使用的是PostgreSQL 9.2/3 +和Rails 4+,则可以使用第一种方法的改进版本.您可以使用store_accessor在PostgreSQL hstore列中存储首选项,并支持验证和查询.
class User
store_accessor :preferences, :receive_newsletter
validates :receive_newsletter, presence: true
end
Run Code Online (Sandbox Code Playgroud)
user.receive_newsletter => 'true'
User.where("preferences->'receive_newsletter' = 'true'")
有关更多详细信息(迁移),请参阅http://mikecoutermarsh.com/using-hstore-with-rails-4/以及有关处理布尔值的特别说明.
| 归档时间: |
|
| 查看次数: |
9217 次 |
| 最近记录: |