2016-04-14 92 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(用戶名: 「圖莎爾」,密碼:「ABC 「) (0.1ms)開始事務 SQL(0.4ms)INSERT INTO」users「(」username「,」password「,」created_at「,」updated_at「)VALUES(?,?,?,?)[[」用戶名「,」Tushar「],[」密碼「,」ABC「],[」created_at「,」2016-04-14 09:23:14.077264「],[」updated_at「,」2016-04-14 09: 23:14.077264「]] (12.9ms)commit transaction =># 2.3.0:015>

它讓我插入數據。如何更改我的自定義驗證方法?

+0

您正在使用哪個版本的Rails? –

回答

3

你的代碼是絕對好的。您可能需要重新啓動rails console,它會正常工作。 Rails控制檯會話不會自動加載模型中的最近更改。

+0

我只是使驗證方法'私人',並使其返回一個布爾值。 – tompave