如何在Rails中验证唯一性和allow_blank与范围?

时间:2016-03-31 23:51:40

标签: ruby-on-rails ruby-on-rails-4

用户有姓名,电子邮件和城市。

任何2都可以复制,但不是全部3:

validates_uniqueness_of :name, scope:[ :email, :city ]

这很好用。如何添加以下约束?

电子邮件唯一性case_sensitive: false 城市唯一性allow_blank: true。如果城市为空,则具有相同电子邮件和姓名的多个用户有效。

Rails 4.2.5

1 个答案:

答案 0 :(得分:1)

试试这个

validates_uniqueness_of :name, scope:[ :email, :city ] if: Proc.new { |tbl| !tbl.city.blank? }