在没有条件的情况下触发rails / active_record条件验证

时间:2012-09-05 13:24:24

标签: ruby-on-rails validation activerecord

我的模型有三种特定状态:draftsubmittedpublished

这些州中的每一个都有特定的验证规则。例如。只有submittedpublished才需要模型的名称。有点像:

validates :name, :presence => true, :unless => :draft?

当屏幕上显示draft模型时,我想要显示哪些损坏的验证规则必须修复,然后才能转换为submitted。当模型位于draft时,验证表明它是有效的(这是真的),但我仍然希望将错误显示为submitted

我真的不知道应该如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

我为我的一个项目做了类似的事情。在我的情况下,我有一个虚拟属性,我可以设置为覆盖状态。然后在我的“草案”版本中?方法我检查虚拟属性,如果属性“do_full_validation”设置为true,那么我以允许执行验证的方式响应。