我正在使用Ruby on Rails 3.0.9,我正在尝试在特定上下文中验证嵌套模型,仅用于电子邮件属性唯一性
在我的控制器中我有:
@user.valid? :uniqueness_context
在我的嵌套模型中,我有:
validates :email,
:format => {
:with => EMAIL_REGEX
},
:uniqueness => {
:on => :uniqueness_context # Here it doesn't work
},
:presence => true
有什么问题?如何使上述验证码有效?
注意:如果在模型中我使用以下内容:
validates :email,
:format => {
:with => EMAIL_REGEX
},
:uniqueness => true,
:presence => true
一切按预期工作。
为了解决这个问题,我还尝试在模型中使用以下内容:
validates :email,
:format => {
:with => EMAIL_REGEX
},
:presence => true
validates_uniqueness_of :email, :on => :uniqueness_context
但它仍然不起作用。
答案 0 :(得分:0)
抱歉,我把它间隔了一分钟,因为我没有意识到你可以创建自定义上下文。
查看源代码,看起来UniquenessValidator似乎不支持:on
上下文选项。
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/validations/uniqueness.rb
答案 1 :(得分:0)
我遇到了同样的problem。似乎Rails目前不支持自定义验证上下文。 :if
将为您完成这项工作。