2
對於一個名爲Email.rb的模型,我有一個名爲new_todos的方法。如何使Rails中的多個模型可以使用相同的方法?
這種方法需要用於Call.rb,Postalcard.rb等。
而不是剪切和粘貼這個確切的片段跨多個活動記錄模型,我怎麼能只寫一次它,並提供給適當的模型?
我懷疑它可以通過將一個模塊放在/ lib文件夾中,但我不完全確定....謝謝!
def new_todos
Contact.campaign_id_is(self.campaign_id).each do |contact|
todo = Todo.new
todo.contact_id = contact.id
todo.user_id = contact.user_id
todo.asset = self.class.name
todo.asset_id = self.id
todo.original_date = contact.date_entered + self.days.days
todo.current_date = todo.original_date
todo.save
end
end
如果模塊的唯一目的是提供一組相同的方法,以每包括類/模塊,那麼沒有理由「去元」('self.included'和'klass.class_eval' )。只需在模塊中定義方法並將模塊包含在需要該方法的類中即可。 – 2010-11-07 18:24:28
哦,很酷,不知道。謝謝。 – mark 2010-11-07 18:39:03
是從@Chris糾正的以上答案嗎? – Angela 2010-11-07 21:13:18