2016-04-14 5 views
1

私はカスタム検証を習得しようとしています。Ruby on Rails - カスタム妥当性検査許可が機能しない

class User < ActiveRecord::Base 
    validates :username, presence: true,length: { in: 6..20 } 
    validate :name_cannot_be_tushar 

    def name_cannot_be_tushar 
    if username == "Tushar" 
     errors.add(:username, "can't be Tushar") 
    end 
    end 
end 

私はレールのコンソールを介してデータを挿入しようとしています、

2.3.0:014> User.create(ユーザー名: "Tushar"、パスワード: "ABCの下に簡単なコードです") (0.1ms)begin transaction SQL(0.4ms)INSERT INTO" users "(" username "、" password "、" created_at "、" updated_at ")VALUES(?、?、?、?) 「パスワード」、「ABC」、「created_at」、「2016-04-14 09:23:14.077264」]、「「updated_at」、「2016-04-14 09: 23:14.077264 "]] (12.9ms)コミットトランザクション =># 2.3.0:015>

データを挿入させています。カスタム検証メソッドを動作させるために変更するものは何ですか?

+0

使用しているRailsのバージョンは? –

答えて

3

あなたのコードは絶対お役に立ちです。 rails consoleを再起動する必要があります。正常に動作します。 Railsコンソールセッションは、モデルの最近の変更を自動的にロードしません。

+0

私は検証メソッド 'private'を作成し、ブール値を返すようにします。 – tompave

関連する問題