【问题标题】:How to compare boolean values in rails如何比较rails中的布尔值
【发布时间】:2019-08-18 03:02:54
【问题描述】:

我正在根据要求比较数据类型。我将布尔返回值作为字符串“true”或“false”。我需要将实际值与预期值进行比较。我正在使用下面的代码进行比较,但它没有进行比较。如何比较rails中的布尔值?

   if expected_value.include? "DataType_Boolean"
    #   Check that the actual value should be either true or false.
    if expected_value.casecmp("true").zero? || expected_value.casecmp("false").zero?
      result = "Passed"
    end

【问题讨论】:

  • 好的,谢谢。我在下面尝试过,但没有成功。 def true?(obj) obj.to_s == "true" end
  • 我错过了什么吗?
  • 如果expected_value.include? "DataType_Boolean" # 检查实际值是真还是假。 if true?expected_value result = "Passed" end
  • 我试过上面的代码

标签: ruby-on-rails


【解决方案1】:

我假设 expected_value 看起来像这样(并且不是数组):

"DataType_Boolean false"

因为如果你在一个数组上调用casecmp,它将返回一个未定义的方法错误。如果是这样,您可以继续拨打include? 看看是否匹配。

if expected_value.include? "DataType_Boolean"
  #   Check that the actual value should be either true or false.
  if expected_value.include?("true") || expected_value.include?("false")
    result = "Passed"
  end
end

如果上述假设成立,您的第二个 if 语句将永远不会返回 true,因为包含字符串的额外部分。

【讨论】:

  • 这也行不通。 DataType_Boolean 是存储在数据库中的值。
  • 我正在使用 postgresql。 DataType_Boolean 存储在 expected_value(text) 列中
  • 请在您的问题中包含expected_value 的实际输出以及条件运行的其余方法。
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
相关资源
最近更新 更多