我有一個標準的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