Ruby on Rails - 自定义验证允许不起作用

时间:2016-04-14 09:33:50

标签: 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

当我尝试通过rails console插入数据时,

  

2.3.0:014&gt; User.create(用户名: “图莎尔”,密码: “ABC”)      (0.1ms)开始交易     SQL(0.4ms)INSERT INTO“users”(“username”,“password”,“created_at”,“updated_at”)VALUES(?,?,?,?)[[“username”,“Tushar”],[“密码“,”ABC“],[”created_at“,”2016-04-14 09:23:14.077264“],[”updated_at“,”2016-04-14 09:23:14.077264“]]      (12.9ms)提交事务    =&GT; #   2.3.0:015&gt;

让我插入数据。如何更改以使我的自定义验证方法有效?

1 个答案:

答案 0 :(得分:3)

你的代码绝对没问题。您可能需要重新启动rails console,它才能正常工作。 Rails控制台会话不会自动加载模型中的最新更改。