我想補充的方法nil_or_empty?
所有類,所以我定義如何在Rails中擴展類對象?
module ObjectExtensions
def nil_or_empty?
return self.nil? || (self.respond_to?('empty?') && self.empty?)
end
end
::Object.class_eval { include ::ObjectExtensions }
它在一個簡單的Ruby腳本正常工作
p nil.nil_or_empty? #=> true
p ''.nil_or_empty? #=> true
p [].nil_or_empty? #=> true
p 0.nil_or_empty? #=> false
然而,當我把它添加到我的庫文件lib/extensions.rb
一個Rails 3的應用程序,它似乎沒有添加
NoMethodError (undefined method `nil_or_empty?' for nil:NilClass):
app/controllers/application_controller.rb:111:in `before_filter_test'
我加載庫文件(所有其他extensio ns從那個文件工作正常)和
# config/application.rb
# ...
config.autoload_paths << './lib'
我在哪裏錯了?
可能的重複http://stackoverflow.com/questions/5654517/in-ruby-on-rails-to-extend-the-string-class-where-should-the-code-be-put-in – 2011-05-01 08:34:07