Rails 4:验证嵌套模型

时间:2013-08-03 17:15:56

标签: ruby-on-rails validation

我有一个嵌套属性的验证器:

validates_numericality_of :rate, greater_than: 0, if: -> {self.user.is_tutor?}

其中is_tutor是父表单中的布尔字段。

尽管尝试了很多次,但验证似乎并不像我希望的那样。我希望它将传递给更新表单的params [:is_tutor]值,但我的验证器始终检查存储在数据库中的值。

如何设置:if => to the params hash for boolean value is_tutor?我尝试过params [:is_tutor]但是没有用。

我也试过把它放在父母身上:

validates_numericality_of :rate, greater_than: 0, if: :is_tutor?

这看看:is_tutor的现值,这就是我想要的。但是,它找不到:rate符号,因为它是嵌套属性。

有什么想法? 谢谢!

1 个答案:

答案 0 :(得分:0)

虽然我没有测试它,但这应该可行。

validates_numericality_of :rate, greater_than: 0, if: -> (r) {r.user.is_tutor?}