Rails has_many但每30天只有一个模型

时间:2015-10-03 23:19:17

标签: ruby-on-rails ruby

我想将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天没有创建?

1 个答案:

答案 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天内已经存在新记录,这将阻止为该人创建新记录。