所以我有一个userMigration文件,可以手动创建表中的行。这在初始化阶段调用。此外,在该特定表格上,我对用户的详细信息应该如何进行验证(长度,唯一性等)。
Migration.rb
Models::Persistence::User.create({:email => 'testuser@cs.com',
:username => 'testuser@cs.com',
:first => '',
:last => 'User',
:password => 'Test123!!',
:bio => 'User, student',
# :user_id => 3,
# :photoURL => "http://link",
:created_by => 1})
我的模型文件供用户使用:
module Persistence
# Models persistent User data
class User < ActiveRecord::Base
include Songkick::OAuth2::Model::ResourceOwner
validates :bio, length: {maximum: 500}
validates_uniqueness_of :email
validates :email, :presence => true, :allow_nil => false
validates_format_of :email,:with => /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
validates :first, :presence => true, :allow_nil => false, length: {maximum: 100}
validates_format_of :first, :with => /[a-zA-Z]/
当我更改userMigration数据并输入不符合验证条件的值时,仍会创建包含该数据的行。 (迁移文件中的第一个名称为nil,但仍然在数据库中创建了该行。)有没有办法在此阶段打印出错误?
答案 0 :(得分:1)
尝试使用bang版本:create!
- 如果记录无效,则会抛出错误。