2

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

4

1 回答 1

4

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

你可以使用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 的一部分。如果可能,您应该避免使用此方法,因为它可能会在将来被删除或更改。

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

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

你可以扩展Object

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

  def present?
    !blank?
  end
end

最后一个选项

You may prefer using pure Ruby and its nil? and empty? methods if semantics is suitable.

于 2017-09-17T22:35:15.350 回答