我有一个嵌套属性的验证器:
validates_numericality_of :rate, greater_than: 0, if: -> {self.user.is_tutor?}
其中 is_tutor 是父表单中的布尔字段。
尽管进行了多次尝试,但验证似乎并没有达到我想要的效果。我希望它采用传递给更新表单的 params[:is_tutor] 值,但我的验证器始终检查存储在数据库中的值。
如何将 :if => 设置为布尔值 is_tutor 的参数散列?我已经尝试过使用 params[:is_tutor] 但这没有用。
我也试过把它放在父母身上:
validates_numericality_of :rate, greater_than: 0, if: :is_tutor?
这着眼于 :is_tutor 的现值,这正是我想要的。但是,它找不到 :rate 符号,因为它是一个嵌套属性。
有什么想法吗?谢谢!