Rails 3.2 - Rails如何空白?方法在内部工作?

时间:2012-08-29 17:23:44

标签: ruby-on-rails ruby

我想知道Rails如何处理方法空白?。

我试图建立自己的空白?等效的方法,但这并不容易。这是我的尝试:

def my_blank(state)
  if state == nil or state.empty? == true
     true
  else
     false
  end

end

2 个答案:

答案 0 :(得分:6)

这个项目是开源的,所以只需看一下来源:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb

您会看到为各种类别编写了单独的方法(例如StringArray等)。

答案 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

希望它有所帮助。