自定义属性/使用Ruby on Rails的用户定义属性

问题描述:

是否有Ruby gem帮助我们构建允许用户为应用程序实体/表单定义自定义属性的应用程序?这在ERP或CRM应用程序中非常常见。自定义属性/使用Ruby on Rails的用户定义属性

我看着https://github.com/latortuga/has_magic_columns,它看起来很有希望,但自述文件说它不是生产就绪。我也不喜欢这样的事实,即代码在同一个字符串列中存储不同的数据类型。

我可以使用NoSQL数据库来帮助我将自定义属性存储在无模式数据库中,但我仍然需要创建一个存储自定义属性配置的数据库结构。

你看过新的rails 4活动记录hstore吗?这使您可以将关键值对存储在PostgreSQL中。

http://edgeguides.rubyonrails.org/4_0_release_notes.html#active-record-notable-changes

您可以使用ActiveRecord ::商店这对Rails 3.2出来了。它给你,你寻找什么:

  • 商店,序列化到一个文本列在数据库
  • 你把任何属性里面,你想
  • 另外,你可以定义访问器共同属性

实施例:

class User < ActiveRecord::Base 
    store :settings, accessors: [ :color, :homepage ], coder: JSON 
end 

u = User.new(color: 'black', homepage: '37signals.com') 
u.color       # Accessor stored attribute 
u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor 

# There is no difference between strings and symbols for accessing custom attributes 
u.settings[:country] # => 'Denmark' 
u.settings['country'] # => 'Denmark' 

# Add additional accessors to an existing store through store_accessor 
class SuperUser < User 
    store_accessor :settings, :privileges, :servants 
end 

从/更多信息粘贴: http://api.rubyonrails.org/classes/ActiveRecord/Store.html