【问题标题】:Have Hanami an alternative for .present?Hanami 有 .present 的替代方案吗?
【发布时间】:2018-02-26 09:46:39
【问题描述】:

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

【问题讨论】:

  • 使用present?的用例是什么。是为了检查参数吗?有比致电present? 更好的方法。

标签: ruby-on-rails ruby hanami


【解决方案1】:

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 是实用程序类和标准库扩展的集合。它是一个单独的 gem,您可以独立使用它。

你可以扩展Object:

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

  def present?
    !blank?
  end
end

最后一个选项

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

【讨论】:

  • pure Ruby 有很多方法可以干净利落地做到这一点。
猜你喜欢
  • 2012-05-29
  • 2021-12-03
  • 2019-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
相关资源
最近更新 更多