我想知道Rails如何處理方法空白?Rails 3.2 - Rails如何變爲空白?方法在內部工作?
我試圖建立自己的空白?等價的方法,但這並不容易。這裏是我的嘗試:
def my_blank(state)
if state == nil or state.empty? == true
true
else
false
end
end
我想知道Rails如何處理方法空白?Rails 3.2 - Rails如何變爲空白?方法在內部工作?
我試圖建立自己的空白?等價的方法,但這並不容易。這裏是我的嘗試:
def my_blank(state)
if state == nil or state.empty? == true
true
else
false
end
end
該項目是開源的,所以只是看看源:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb
你會看到有像String
的各類書面單個方法(,Array
等)
正如你可以從源頭上讀到的那樣,空白?方法是在Ruby的基本類:Object,NilClass,FalseClass,TrueClass,Array,Hash,String和Numeric上的Rails特定猴子補丁。 – ringe
這裏是另一個變種,我寫來幫助我做一些我們系統中的結構:
Object.class_eval do
def deep_blank?
self.kind_of?(Enumerable) ? self.inject(true) { |running, element| running &&= element.kind_of?(Enumerable) ? element.deep_blank? : element.blank? } : self.blank?
end
end
希望它可以幫助某人。
進入http://api.rubyonrails.org/,輸入「blank?」,找到您要查找的「blank?」,然後點擊相應的「show」或「on GitHub」鏈接。有不同的'blank?'實現被修補到不同的類中。 –