Postgres + Rails:如何在迁移到DB时进行验证

时间:2015-03-21 16:49:52

标签: ruby-on-rails postgresql

所以我有一个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,但仍然在数据库中创建了该行。)有没有办法在此阶段打印出错误?

1 个答案:

答案 0 :(得分:1)