ruby - 为什么我不能在控制台中检查 ActiveRecord 验证?

标签 ruby validation activerecord console

我目前正在学习 RoR,我想我一定是误解了什么。

我有一个 ActiveRecord 类调用 User,对 :name 和 :email 进行简单验证,例如 presence: true、length: { maximum: 15 } 等。我想我会在控制台中检查验证。我进入 Rails 控制台(开发环境),并创建一个名称太长的新实例,例如 user_instance = User.new(名称:“aaaaabbbbbcccccdddddd”,电子邮件:“”)。

验证不会抛出任何错误。当我尝试 user_instance.save 时,记录不会写入数据库,所以在那个阶段它显然工作正常。我做错了什么?

最佳答案

当您想在记录保存时引发异常,请使用 save!而不是 save (与 update/update!, create/create! 相同)。

使用save,如果出现验证错误,您将不会引发异常,它只会返回false。您还可以使用 user_instance.valid? 检查实例上是否存在错误,并使用 user_instance.errors 获取错误。

参见 When Does Validation Happen? .

关于ruby - 为什么我不能在控制台中检查 ActiveRecord 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234313/

相关文章:

ruby - 安装 rake

javascript - 表单在提交之前应该由 javascript 验证吗?

php - 使用 PHP 验证 SQL 查询

ruby-on-rails - before_filter或rescue创建新记录

ruby - rb-libsvm 中的零概率

Ruby 无法从 Azure 实例元数据服务获取 Azure VM 元数据

ruby 风格 : should initialize take a file with data or just the raw data as parameters

javascript - 是否所有有效的电子邮件都至少包含一个 @ 符号?

ruby-on-rails - rails : How to handle "Attribute was supposed to be a Array, but was a String" error?

ruby-on-rails - ControllerNameController 中的 ActiveRecord::StatementInvalid#create SQLite3::SQLException:没有这样的列: