Rails5.1.3でWebアプリケーション制作の勉強をしています。customersテーブルのsponsor1カラムに対して
フォーム入力値がsponsor1カラムに存在しなければいけないというバリデーションをかけようとしています。
カスタムバリデータで実現しようとしました。
すると以下のようにカスタムバリデータの部分でエラーが出て困っています。
エラーの内容 ArgumentError in Visitor::CustomersController#new Unknown validator: 'ExistsValidator' Extracted source (around line #39): 37 38 validates :nickname, uniqueness: { allow_blank: true } 39 validates :sponsor1, exists: true----------------------ここでエラーが出ます。 40 41 before_save do 42 if birthday
app/validators/exists_validator.rb class ExistsValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) model = record.class unless model.where(attribute.to_sym => value).count > 0 record.errors.add(attribute, 'が存在していないニックネームとなっています。') end end end
app/models/customer.rb class Customer < ActiveRecord::Base validates :nickname, uniqueness: { allow_blank: true } validates :sponsor1, exists: true before_save do if birthday
以上となっていますが、エラーの解決方法がわからなくて困っています。
どなたか教えていただけないでしょうか?宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/27 07:41
2017/12/27 07:43
2017/12/27 07:45