我想知道Rails如何处理方法空白?。
我试图建立自己的空白?等效的方法,但这并不容易。这是我的尝试:
def my_blank(state)
if state == nil or state.empty? == true
true
else
false
end
end
答案 0 :(得分:6)
这个项目是开源的,所以只需看一下来源:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb
您会看到为各种类别编写了单独的方法(例如String
,Array
等)。
答案 1 :(得分:1)
这是我写的另一个变体,用来帮助我学习系统中的一些结构:
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
希望它有所帮助。