簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM