7
A
回答
6
对不起,我不知道任何插件来做到这一点。但我有一个实施建议。
这个想法是添加一个“DynamicField”模型,该模型与Contact模型有has_many关系。 如果在联系人模型中缺少方法,则检查是否有动态字段来检索它,如果是这种情况。
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
您将需要添加一个正则表达式,如果你想与属性=方法添加虚拟属性(检测的“=”的存在,做一个更新,而不是只得到的值)。 但你已经有了这个想法。
当方法不存在时,我们检查动态字段是否有相同的名称。 如果没有(field.nil?),我们引发一个NoMethodError。否则,我们将其退回。
所以,你可以出现以下所有字段的列表:
Contact.find(:first).dynamic_fields
和检索特定的一个具有以下内容:
Contact.find(:first).my_dynamic_field
2
这里做的另一种方式。
免责声明:此方法不建议,因为它可能会被滥用。实际上,它应该只适用于您网站的管理员。
class MyModel < ActiveRecord::Base
...
def self.add_column(name, type, args= {})
ActiveRecord::Migration.add_column table_name, name, type, args
end
end
相关问题
- 1. 在Rails 2.2.2中动态添加字段到ActiveRecord模型?
- 2. Rails的动态在模型
- 3. django中的动态模型字段
- 4. 用客户指定的附加动态字段创建表单?
- 5. 动态指定绑定字段
- 6. 动态长度的Django模型字段
- 7. Rails模型:如何让Rails模型中的字段只读?
- 8. 在Mongoose中的动态模式字段
- 9. 如何在Django中使用模型字段设置动态选择字段
- 10. 动态字段添加到Django模型
- 11. 在Devise中编辑自定义字段用户模型
- 12. Django的:动态模式字段定义
- 13. 在Rails 3中以嵌套模型形式动态添加字段
- 14. 如何在创建新模型(用户)时隐藏rails rails显示的字段?
- 15. Rails多态用户模型与设计
- 16. Ruby on Rails动态模型
- 17. 如何在django的模型中添加动态字段?
- 18. 动态自定义字段的数据模型
- 19. 是否可以动态定义模型字段的名称?
- 20. 扩展与自定义字段的用户模型在Django
- 21. Django AdminModel的用户模型字段
- 22. 模型上的Django用户字段
- 23. 源中的哪个位置是指定的模型字段 - >表单字段?
- 24. 在rails中引用属于另一个模型类的字段
- 25. 指令模板中的动态字段(angularjs)
- 26. 如何在Drupal中动态指定字段名称
- 27. 如何在Linq where子句中指定动态字段名称?
- 28. 在模型中将动态字段设置为'初始'
- 29. 在django中创建动态模型字段
- 30. 如何仅使用DataMapper获取模型的指定字段?