我有一个标准的ActiveRecord模型如下:Rails的ActiveRecord的和:追加来自ActiveRecord的继承方法,模型:: Base的
class MyModel < ActiveRecord::Base
custom_method :first_field, :second_field
end
目前,该custom_method被发送到ActiveRecord的模块回升::基础。该功能基本上可行,但当然,它每模型类,而不仅仅是MyModel它自己附加到。所以如果我的MyModel和MyOtherModel在同一个动作中,它会假定MyOtherModel有custom_method:first_field,:second_field。
所以,我的问题是:我如何连接的方法(如:高清custom_method(*参数)),以每类从ActiveRecord的:: Base的继承,而不是由它连接到的ActiveRecord :: Base的本身?
任何想法赞赏。
===
编辑
的custom_method当前连接到的ActiveRecord :: Base的由以下:
module MyCustomModule
def self.included(base)
base.extend(self)
end
def custom_method(*args)
# Zippity doo dah - code goes here
end
end
ActiveRecord::Base.send(:include, MyCustomModule)
听起来像关键是'custom_method'做了什么? – 2012-03-31 11:32:27
打开ActionView :: Helpers :: FormHelper - > fields_for&将args从custom_method(* args)添加到任何form_for(包装在h1标签中)的顶部。 ...实际上是一个无用的宝石,但我试图找到我的脚:宝石创作。 – PlankTon 2012-03-31 11:36:26
我想我们需要确切地知道它在做什么,以便猜测为什么正在进行的操作适用于所有模型(尽管看起来自定义表单构建器在这里可能更合适) – 2012-03-31 11:58:02