Hanami是.present的另一种选择吗?

时间:2017-09-17 22:21:02

标签: ruby-on-rails ruby hanami

Rails具有有用的present?方法。如何在Hanami中查看相同的内容?

1 个答案:

答案 0 :(得分:4)

present?与Ruby on Rails中的blank?相反。

您可以使用Hanami::Utils::Blank

require 'hanami/utils/blank'

Hanami::Utils::Blank.blank?(nil)     #=> true
Hanami::Utils::Blank.blank?(' ')     #=> true
Hanami::Utils::Blank.blank?('Artur') #=> false

然而,有两个问题:

  

此方法是私有API的一部分。如果可能,您应该避免使用此方法,因为它可能会被删除或将来更改。

您可以在没有Ruby on Rails的情况下使用ActiveSupport

Active Support是实用程序类和标准库扩展的集合。它是一个独立的宝石,你可以独立使用它。

您可以延长Object

class Object
  def blank?
    respond_to?(:empty?) ? !!empty? : !self
  end

  def present?
    !blank?
  end
end

最后一个选项

如果语义合适,您可能更喜欢使用纯Ruby及其nil?empty?方法。