1

モデルで次のようにphone_numberの一意性を検証できます。

validates :phone_number, :uniqueness => true 

問題は、データベース内のどのユーザーも電話番号を持っていないため、すべてが空であるということです。ページを読み込んでいる間、電話番号を入力せずに、次の検証エラーが発生し続けます。

Validation failed: Phone number has already been taken

空の電話番号の検証も適用しているようです。

パラメータ内の空でない電話番号にのみ適用されるように検証を変更するにはどうすればよいですか?

4

2 に答える 2

3

これのいずれか:

validates :phone_number, :uniqueness => true, :allow_nil => true

phone_number がnil (またはデータベースでは NULL) の場合、または次の場合に渡されます。

validates :phone_number, :uniqueness => true, :allow_blank => true

phone_number がnilまたは空の文字列の場合に渡されます

于 2012-09-05T13:20:45.773 に答える
2

Rails はそれをそのまま提供します。ドキュメントを確認してください: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_uniqueness_of

validates_uniqueness_of :phone_number, :allow_blank => true
于 2012-09-05T13:18:41.657 に答える