是否有 Ruby gem 可以帮助我们构建允许用户为应用程序实体/表单定义自定义属性的应用程序?这在 ERP 或 CRM 应用程序中很常见。
我查看了https://github.com/latortuga/has_magic_columns,它看起来很有希望,但自述文件说它还没有准备好生产。我也不喜欢代码在同一个字符串列中存储不同数据类型的事实。
我可以使用 NoSQL 数据库帮助我将自定义属性存储在无模式数据库中,但我仍然必须创建一个存储自定义属性配置的数据库结构。
是否有 Ruby gem 可以帮助我们构建允许用户为应用程序实体/表单定义自定义属性的应用程序?这在 ERP 或 CRM 应用程序中很常见。
我查看了https://github.com/latortuga/has_magic_columns,它看起来很有希望,但自述文件说它还没有准备好生产。我也不喜欢代码在同一个字符串列中存储不同数据类型的事实。
我可以使用 NoSQL 数据库帮助我将自定义属性存储在无模式数据库中,但我仍然必须创建一个存储自定义属性配置的数据库结构。
您是否查看过新的 rails 4 active record hstore?这允许您在 PostgreSQL 中存储键值对。
http://edgeguides.rubyonrails.org/4_0_release_notes.html#active-record-notable-changes
您可以使用 Rails 3.2 中出现的 ActiveRecord::Store。它为您提供了您正在寻找的东西:
例子:
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