【问题标题】:rails, model validation from nested modelrails,嵌套模型的模型验证
【发布时间】:2014-11-05 04:31:27
【问题描述】:

我有一个 Post 模型和 Comment 模型(Post has_many cmets,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

任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 太棒了!我调整了一些变量名,但语法是正确的。谢谢JB!
    猜你喜欢
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多