![](/img/trans.png)
[英]How can i write a method that can generate scope dynamically which can be used for multiple models in ruby on rails
[英]How can I make the same method available to multiple models in Rails?
对于一个名为Email.rb的模型,我有一个下面显示的名为new_todos的方法。
需要使Call.rb,Postalcard.rb等具有相同的方法。
与其在多个Active Records模型之间剪切并粘贴这个精确的片段,我如何只编写一次并将其提供给适当的Models?
我怀疑可以通过将模块放在/ 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.