rails,嵌套模型的模型验证

时间:2014-11-05 04:31:27

标签: ruby-on-rails ruby validation model associations

我有一个Post模型和评论模型(Post has_many comments,Comment belongs_to Post)

我想在我的评论模型中验证一个字段,如果评论字段小于2 Post date_fields之间的差异,他们只能创建/更新。我该如何实现这一目标?

现在,在我的评论模型中,我有:

validates :comment_check, presence: true, :numericality => { :greater_than_or_equal_to => 0 }

我只需添加验证即可:less_than_or_equal_to发布日期差异。我在Post模型中也有这个模型方法:

def self.days_diff
  (end_date.to_date - start_date.to_date).to_i
end

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

在您的评论模型中,您可以通过以下方式进行验证:

validate :comment_date

def comment_date
  if self.post.end_date < Time.now or self.post.start_date.to_date > Time.now
    self.errors.add(:created_at, "failed to save at the moment")
  end
end