Hanami 有 .present 的替代方案吗?

Have Hanami an alternative for .present?

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

present? 与 Ruby 中 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

但是有两个问题:

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

您可以在 Rails

上使用 ActiveSupport 而没有 Ruby

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

您可以扩展 Object:

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

  def present?
    !blank?
  end
end

最后一个选项

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