Rails里有些方法使用一个Hash作为最后一个可选的参数,如果对多个方法有同样的选项,我们可以使用with_options来减少冗余:

ruby代码
  1. # models/user.rb
  2. with_options :if => :should_validate_password? do |user|
  3. user.validates_presence_of :password
  4. user.validates_confirmation_for :password
  5. user.validates_format_of :password, :with => /^[^\s]+$/
  6. end
  7. attr accessor :updating_password
  8. def should_validate_password?
  9. updating_password || new_record?
  10. end
  11. # routes.rb
  12. map.with_options :controller => 'sessions' do |sessions|
  13. sessions.login 'login', :action => 'new'
  14. sessions.logout 'logout', :action => 'destroy'
  15. end
# models/user.rb with_options :if => :should_validate_password? do |user| user.validates_presence_of :password user.validates_confirmation_for :password user.validates_format_of :password, :with => /^[^\s]+$/ end attr accessor :updating_password def should_validate_password? updating_password || new_record? end # routes.rb map.with_options :controller => 'sessions' do |sessions| sessions.login 'login', :action => 'new' sessions.logout 'logout', :action => 'destroy' end 

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

诗歌rails 之with_options相关推荐

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

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

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

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

  3. 诗歌rails之 Logger

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

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

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

  5. 诗歌rails之Hacking ActiveRecord

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

  6. 诗歌rails 之bundle

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

  7. 诗歌rails 之gem命令

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

  8. 诗歌rails之 method_missing

    当ruby试着去调用一个不存在的方法时( 或者,一个对象发送了一个不能被处理的消息 ),就可能会引起错误并造成程序的终止.你可能更喜欢你编写的程序能够从这样的错误中恢复过来.可以使用method_mi ...

  9. 诗歌rails之 有条件的validation

    默认每次save我们的Model时都会执行validation,但有时候我们希望有一定的条件触发时才执行validation: Java代码 # models/user.rb validates_pr ...

最新文章

  1. Java新手会遇到的三大误区,一定要避免!
  2. 嵌套中断共享资源问题及解决
  3. 如何在linux下判断web服务是否开启?
  4. oracle access manager token,AuthenticationManager验证原理
  5. Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式
  6. [html] 当html中使用map标签时,area中coords值如何精确定位呢?
  7. redistemplate使用_如何使用 SpringBoot + Redis 优雅的解决接口幂等性问题
  8. java中的Card是什么_Java中diapCard是什么意思
  9. 转:C#调用C++的DLL搜集整理的所有数据类型转换方式
  10. Hibernate框架入门
  11. Scala学习05——Scala集合
  12. 2016新网商年度盛典,千机网解构新零售
  13. 映客卖身、花椒获资、抖音崛起——直播和短视频现状分析
  14. 怎样调整计算机显示屏窗口,电脑显示器怎么调节参数
  15. 兰德公司:零日漏洞平均生存期为6.9年
  16. 苹果App Store 应用商店页面的优化技巧
  17. 大批量读取硬盘中的数据,存储到mongo数据库中
  18. 雷军VS黄章:现实主义和梦幻主义的商业对决
  19. 章泽天又晒27岁生日照:刚刚又重返18岁!
  20. 用娃娃机打开线下流量入口,乐摇摇完成亿元级B+轮融资

热门文章

  1. start 与 run 区别
  2. SQL基础【十三、通配符】
  3. Oracle增大redo log file的方法
  4. Linux Shell变量类型
  5. Sqlcmd连接SQL方式(远程机器直接查询SQL)
  6. C#数组和集合专题4(Hashtable类)
  7. PS学习笔记2-画笔的应用
  8. SuperMap产权登记管理平台
  9. Http Handler 介绍(转)
  10. html5纪念日期代码,HTML5适合的情人节礼物有纪念日期功能