2016-04-14 60 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