如何在Rails中为多个模型提供相同的方法?

对于一个名为Email.rb的模型,我有一个名为new_todos的方法。

需要为Call.rb,Postalcard.rb等提供相同的方法。

而不是在多个Active Records模型中剪切和粘贴这个精确的片段,我怎样才能将它编写一次并将其提供给适当的模型?

我怀疑它可以通过在/ 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 

如您所说,您可以创建一个模块并将其包含在您需要的位置。

 #lib/todo_extension.rb module TodoExtension def new_todos ... end end # call.rb, postalcard.rb... include TodoExtension