【问题标题】:Ruby on Rails - custom validation allowing isn't workingRuby on Rails - 允许自定义验证不起作用
【发布时间】:2023-04-06 06:26:01
【问题描述】:

我正在尝试学习自定义验证。下面是简单的代码:

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 控制台插入数据时,

2.3.0 :014 > User.create(用户名:"Tushar",密码:"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) 提交事务 => # 2.3.0:015 >

它让我插入数据。为了使我的自定义验证方法正常工作,我需要进行哪些更改?

【问题讨论】:

  • 您使用的是哪个版本的 Rails?

标签: ruby-on-rails


【解决方案1】:

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

【讨论】:

  • 我只是将验证方法设为private 并使其返回布尔值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 2013-04-16
相关资源
最近更新 更多