0

neworeditフォームに 2 つのフィールドがあるとします。

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

私のモデルでは、それparent_emailが と異なることをどのように検証できemailますか? このオプションは機能するようですが、モデル内のフィールドの値exclusionにアクセスする方法がわかりません。email代わりにこれをコントローラーに実装する必要がありますか?

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

1 に答える 1

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
于 2012-04-05T21:54:21.037 に答える