与同一形式的另一个字段相比,验证字段是唯一的

时间:2012-04-05 21:48:47

标签: ruby-on-rails ruby

假设我有newedit形式的两个字段:

<%= f.text_field :email %>
<%= f.text_field :parent_email %>

在我的模型中,我如何确认parent_emailemail不同? exclusion选项似乎可能有效,但我无法弄清楚如何在模型中访问email字段的值。我需要在控制器中实现这个吗?

validates :parent_email, exclusion: self.email # doesn't work, nor does :email

1 个答案:

答案 0 :(得分:1)

以下内容应该有效(但我想有更酷的解决方案):

class User
  validate  :email_differs_from_parent_email

  private
  def email_differs_from_parent_email
    if email == parent_email
      errors.add(:parent_email, "parent_email must differ from email") 
    end
  end
end