【问题标题】:undefined method `blank?' for "123":String (NoMethodError)未定义的方法“空白?”对于“123”:字符串(NoMethodError)
【发布时间】:2017-10-17 09:04:24
【问题描述】:

我在检查 ruby​​ 中的类变量时遇到了这个奇怪的错误

未定义的方法“空白?”对于“123”:字符串(NoMethodError)

我所做的只是Employee.set_id.blank?

任何想法为什么会发生这种情况?

谢谢。

【问题讨论】:

标签: ruby


【解决方案1】:

blank? 方法是为 activesupport gem (https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb) 中 Object 类的后代的每个 Ruby 对象定义的。

这个 gem 是 Rails 框架的一部分。但是,如果您仍想在非 Rails Ruby 项目中使用 activesupport 这个实用程序,您可以在源文件中使用以下语句要求它:

require 'active_support/core_ext'

确保您已在系统中安装activesupport gem。

【讨论】:

  • 我收到了uninitialized constant ActiveSupport::Autoload (NameError)。所以我在require 'active_support/core_ext' 上方添加了require 'active_support'。这解决了问题。
【解决方案2】:

请改用Employee.set_id.nil? || Employee.set_id.strip.empty?

String#blank? 定义在ActiveSupport

【讨论】:

  • 请注意' '.blank?true' '.empty?false
  • @Stefan 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多