在哪里放置我在几个模型中使用的自定义回调

Joh*_*ith 4 ruby ruby-on-rails callback ruby-on-rails-3 ruby-on-rails-4

假设我有两个具有相同回调的模型:

class Entry < ActiveRecord::Base
    belongs_to :patient
    validates :text, presence: true
    after_validation :normalizeDate

    def normalizeDate
      self.created_at = return_DateTime(self.created_at)
    end
end

class Post < ActiveRecord::Base
    after_validation :normalizeDate

    def normalizeDate
      self.created_at = return_DateTime(self.created_at)
    end
end
Run Code Online (Sandbox Code Playgroud)

我在哪里可以放置共享回调代码?谢谢

 def normalizeDate
   self.created_at = return_DateTime(self.created_at)
 end
Run Code Online (Sandbox Code Playgroud)

apn*_*ing 8

Marek的答案很好,但Rails方式是:

module NormalizeDateModule
  extend ActiveSupport::Concern

  included do
    after_validation :normalize_date
  end

  def normalize_date
    self.created_at = return_DateTime(created_at)
  end
end
Run Code Online (Sandbox Code Playgroud)

在这里.

(并且你有一个假定的文件夹:模型/关注点)