我想将appuser
限制为每30天只有一个lead
。
我知道你可以在has_many中做条件。所以我想做这样的事情:
class Appuser < ActiveRecord::Base
has_many :leads, -> { where created_at: created_at > leads.last.created_at + 30.days }
end
但这并不奏效。任何想法如何调整has_many
条件以确保新的潜在客户至少30天没有创建?
答案 0 :(得分:1)
您可能希望使用自定义验证而不是尝试执行此操作。
有些事情:
validate :past_30_days, :on => :create
def past_30_days
if created_at < leads.last.created_at + 30.days
errors.add(:leads, "need to have at least 30 days of separation.")
end
end
如果在过去30天内已经存在新记录,这将阻止为该人创建新记录。