Ruby on rails Rails中用户指定的动态模型字段

Ruby on rails Rails中用户指定的动态模型字段,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,有人知道允许用户向模型添加字段的gem或良好实现吗 前 用户希望在联系人模型中添加“内部注释”字段。在界面中,他们只需选择“新建字段”>“键入:文本” 谢谢很抱歉,我不知道有什么插件可以做到这一点。但我有一个实施建议 其想法是添加一个“动态场”模型,该模型与接触模型有很多关系。 当联系人模型中缺少一个方法时,检查是否有一个动态字段来检索它(如果是这样的话) class DynamicField < ActiveRecord::Base belongs_to :contact end

有人知道允许用户向模型添加字段的gem或良好实现吗

用户希望在联系人模型中添加“内部注释”字段。在界面中,他们只需选择“新建字段”>“键入:文本”


谢谢

很抱歉,我不知道有什么插件可以做到这一点。但我有一个实施建议

其想法是添加一个“动态场”模型,该模型与接触模型有很多关系。 当联系人模型中缺少一个方法时,检查是否有一个动态字段来检索它(如果是这样的话)

class DynamicField < ActiveRecord::Base
    belongs_to :contact
end


class Contact < ActiveRecord::Base
    has_many :dynamic_fields

    def method_missing(sym, *args, &block)
        begin
            super
        rescue
            field = dynamic_fields.find_by_name(sym)
        end
        raise ActiveRecord::NoMethodError if field.nil?
        field.value
    end
end
并检索具有以下内容的特定对象:

Contact.find(:first).dynamic_fields
Contact.find(:first).my_dynamic_field

这里有另一种方法

免责声明:不建议使用此方法,因为它可能被滥用。事实上,它应该只允许站点管理员访问

class MyModel < ActiveRecord::Base
  ...
  def self.add_column(name, type, args= {})
    ActiveRecord::Migration.add_column table_name, name, type, args
  end
end
classmymodel