ubuntu, ror, jQuery, css, website memo
太嫩, 沒啥心得, 用來紀錄每天學的
2009年9月4日 星期五
hacking_activerecord, include module , extend, class_eval
Hacking ActiveRecord
module,class_eval,extend
<br /># test_helper.rb<br />class Test::Unit::TestCase<br /> self.use_transactional_fixtures = true<br /> self.use_instantiated_fixtures = false<br /> <br /> def disable_validation<br /> ActiveRecord::Base.disable_validation!<br /> yield<br /> ActiveRecord::Base.enable_validation!<br /> end<br />end<br /><br />module ValidationDisabler<br /> def self.included(base)<br /> base.class_eval do<br /> extend ClassMethods<br /> alias_method_chain :valid?, :disable_check<br /> end<br /> end<br /> <br /> def valid_with_disable_check?<br /> if self.class.validation_disabled?<br /> true<br /> else<br /> valid_without_disable_check?<br /> end<br /> end<br /> <br /> module ClassMethods<br /> def disable_validation!<br /> @@disable_validation = true<br /> end<br /> <br /> def enable_validation!<br /> @@disable_validation = false<br /> end<br /> <br /> def validation_disabled?<br /> @@disable_validation ||= false<br /> end<br /> end<br />end<br /><br />class ActiveRecord::Base<br /> include ValidationDisabler<br />end<br />
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言