ruby-on-rails - "validates"什么时候执行?

标签 ruby-on-rails ruby

我是一名 Objective-c 程序员,所以我不习惯在方法之外编写代码。

我有一个关于 Rail 的验证的两部分问题。

考虑这段代码:

class User < ActiveRecord::Base
  attr_accessible :name, :email

  email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

  validates :name,  :presence   => true,
                    :length     => { :maximum => 50}

  validates :email, :presence   => true,
                    :format     => { :with => email_regex }.
                    :uniqueness => true

end
  1. validates 方法具体何时执行?在实例化 User 实例时或加载其类定义时?
  2. User 何时真正得到验证?何时保存或创建 User 实例?

最佳答案

类定义中的所有调用都是在执行类定义时调用的,而不是在创建实例时调用的。值得一提的是,变量 email_regex 不是实例变量,而是类定义的局部变量。

关于ruby-on-rails - "validates"什么时候执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592274/

相关文章:

mysql - 无法使用 Rails 5.0.1 和 MySQL 更新 bool 列

ruby - 在 Mac OSx 10.9.5 上升级到 Ruby 2.1.3

javascript - 尝试从排列的 JSON 键中删除引号

ruby-on-rails - 命名空间路由的默认资源?

mysql - 当在 OS X Lion 上使用 Homebrew 软件安装 MySQL 时,如何安装 mysql2 gem?

ruby-on-rails - 项目使用什么技术栈/平台?

ruby-on-rails - Rails 测试数据库在地理列上获取错误的列类型

JavaScript ES6 : unable to change value of button with ajax (with the rest of the js code working fine)

ruby-on-rails - 无法安装 curl gem

ruby-on-rails - 如何使用共享数据库在 Heroku 上进行 GIS 查询?