【发布时间】: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