【问题标题】:ActiveRecord string booleans as queryActiveRecord 字符串布尔值作为查询
【发布时间】:2015-04-08 14:23:20
【问题描述】:

我正在尝试使用通过控制器作为字符串传递给我的布尔类型来查询我的数据库。 Rails 尝试做的事情如下:

SELECT "orders".* FROM "orders" WHERE "orders"."complete" = ?  [["complete", "false"]]

这会产生一个不应出现的空数组。尝试通过 rails 控制台手动检索记录后,我得到了相同的结果。但是用“false”代替“f”可以解决问题。

使用“f”代替不是一个理想的解决方案,因为我在我的前端模型中使用了 emberjs 和布尔类型,默认情况下会发送“true”或“false”

为什么 ActiveRecord 不接受完整的布尔值作为字符串,我怎样才能让它接受?

【问题讨论】:

  • 你的activerecord查询是什么?
  • @orders = Order.where(complete: false) 其中 false 来自 paras 哈希
  • 你可以试试这个@orders = Order.where("complete = ?", false)
  • 这给了我我想要的,但你看到 false 将作为 params 哈希中的字符串提供给我。

标签: ruby-on-rails ruby activerecord


【解决方案1】:

从外观上看,如果没有某种帮助,您将无法真正做到这一点。在此处查看所选答案:

String "true" and "false" to boolean

【讨论】:

  • 这就是我所害怕的。谢谢回复。我将截取 params 哈希中的布尔值并在进行查询之前对其进行转换
猜你喜欢
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多