【发布时间】:2014-05-09 08:16:04
【问题描述】:
假设我有两个具有相同回调的模型:
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
我在哪里可以放置共享回调代码?谢谢
def normalizeDate
self.created_at = return_DateTime(self.created_at)
end
【问题讨论】:
-
不是验证码。这是回调。
-
对不起!我会改变我的问题
-
我认为这是一个很好的问题,但只是一个旁注:如果你只有 2 个模型,复制是可以的。
-
@sytycs Dry is Dry 我的朋友 :) 2 次相同的代码已经重复,想象一下几个月后您自己必须维护您的代码,而忘记更新其中的一个?跨度>
-
@BenjaminSinclaire 我不同意。如果在 2 个月内我决定更改日期标准化的方式,我可能会考虑代码中发生这种情况的 2 个位置。我只是不喜欢在重构上操之过急。见:stackoverflow.com/questions/2298272/…
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 callback