默认每次save我们的Model时都会执行validation,但有时候我们希望有一定的条件触发时才执行validation:

Java代码
  1. # models/user.rb
  2. validates_presence_of :password, :if => :should_validate_password?
  3. validates_presence_of :country, : on => :create
  4. validates_presence_of :state, :if => :in_us?
  5. attr_accessor :updating_password
  6. def in_us?
  7. country == 'US'
  8. end
  9. def should_validate_password?
  10. updating_password || new_record?
  11. end
  12. # in controller
  13. @user.updating_password = true
  14. @user.save
# models/user.rb validates_presence_of :password, :if => :should_validate_password? validates_presence_of :country, : on => :create validates_presence_of :state, :if => :in_us? attr_accessor :updating_password def in_us? country == 'US' end def should_validate_password? updating_password || new_record? end # in controller @user.updating_password = true @user.save 

转载于:https://www.cnblogs.com/orez88/articles/1519620.html

诗歌rails之 有条件的validation相关推荐

  1. 诗歌rails之如何写一个简单的Rails Plugin

    生成plugin骨架代码: Ruby代码 ruby script\generate plugin MyPlugin ruby script\generate plugin MyPlugin 功能需求: ...

  2. 诗歌rails之Hacking ActiveRecord

    关键字: Hacking 看下面一个场景: ruby代码 # product.rb class Product < ActiveRecord::Base validates_presence_o ...

  3. 诗歌rails之 定时任务 rufus-scheduler

    相关文章: 关于ROR的定时任务 如何在Rails中实现邮件定时发送? crontab调用rake 不能成功,手动执行rake没问题 推荐圈子: TODOtree-ruby 更多相关推荐 在平时的开发 ...

  4. 诗歌rails 之with_options

    Rails里有些方法使用一个Hash作为最后一个可选的参数,如果对多个方法有同样的选项,我们可以使用with_options来减少冗余: ruby代码 # models/user.rb with_op ...

  5. 诗歌rails之 Logger

    关键字: Rails Logger Rails在controller里自带了logger,我们可以用来做debug: ruby代码 def show @cart = current_cart logg ...

  6. 诗歌rails 之自定义Helper模块

    关键字: Rails Helper Rails默认为每个controller指定一个helper,所有的helper都放在app/helpers目录下 但是有些Helper我们希望是全局共享的,一般我 ...

  7. rails 查询 where条件用法

    rails 的where查询会返回 ActiveRecord::Relation 具体格式如下图片 他是一个数组的格式,查询出来的值,如果没有则为空 调用的时候如果想使用查询出来结果,使用方法如下 p ...

  8. 诗歌rails 之bundle

    转自:http://blackanger.blog.51cto.com/140924/355320 Rails3里多了个Bundler工具. 它是一个Library管理工具,它提供了好的工具来管理你r ...

  9. 诗歌rails 之gem命令

    gem相关命令使用 1.显示gem的帮助和版本 gem –h/--help #显示gem的帮助 gem –v /--version #显示gem的版本号 2. 列出远程库的所有可用软件 gem que ...

最新文章

  1. 重磅直播|立体视觉之立体匹配理论与实践​
  2. Flex使用cookie保存登状态
  3. IO消耗和处理器消耗
  4. [YTU]_2907( 类重载实现矩阵加法)
  5. cmake / cmake --build 如何理解
  6. 【Linux】 诊断工具-strace
  7. Ethercat解析(二)之获取、编译、安装(debian7)
  8. 测视力距离5米还是3米_视力表只能看到0.3,相当于近视度数200度?
  9. 带你自学Python系列(十七):Python中类的用法(三)
  10. JVM学习系列之对象访问的两种方式句柄和直接指针
  11. 亲测window+iis+letsencrypt+ssl 手动续期(通配符域名)
  12. 用于小儿肺炎检测的无代码AI
  13. 【用游戏学C语言】几个基本的小游戏的实现(缓慢更新中~)
  14. 获取打印机状态,判断打印机状态,获取打印机驱动信息
  15. python安装 文件或目录损坏_文件或目录损坏且无法读取怎么办?
  16. python爬虫教程(五):解析库bs4及爬取实例
  17. HTML5期末大作业:仿唯品会购物网站设计——仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计
  18. 育儿-《养育男孩》书中的精髓:父母如何理解男孩的每个成长阶段,更好地培养男孩?
  19. edjpgcom生成一句话图片木马
  20. unity 5 打包apk 手动升级android sdk 5.0 api 21

热门文章

  1. python画图-python画图的两种方法
  2. python教程视频在线-微软再推免费在线Python教程 包含20个视频
  3. python基础一入门必备知识-Python从入门到精通要掌握哪些基础知识?
  4. python中文解释-python是解释型语言么
  5. python百度云资源-Python开发视频百度云分享
  6. python画笑脸-如何用Python画滑稽笑脸
  7. 为什么黑客用python-为什么如此多的黑客都用python?
  8. python处理表格-python xlrd处理表格常用方法
  9. 把ros2录制的bag包转换为ros1格式的bag包
  10. python buildin 中的一些类中为什么方法的内容都是pass?