gpt4 book ai didi

ruby-on-rails-3 - 如何在Rails3中的AR查询界面中的何处指定多个值

转载 作者:行者123 更新时间:2023-12-03 10:06:20 24 4
gpt4 key购买 nike

根据Active Record查询界面here上的rails指南的第2.2节:

这似乎表明我可以传递一个指定条件的字符串,然后是在构建arel时的某个时间点应替换的值数组。因此,我有一个生成条件字符串的语句,该条件字符串可以是数量可变的属性,它们之间使用AND或OR链接在一起,然后将数组作为第二个arg传递给where方法,然后得到:

ActiveRecord::PreparedStatementInvalid: wrong number of bind variables (1 for 5)



这使我相信自己做错了。但是,我没有找到有关如何正确执行操作的任何信息。要以另一种方式重述此问题,我需要将字符串传递给where方法,例如“table.attribute =?AND table.attribute1 =?OR table.attribute1 =?”与这些条件的未知数量和/或一起,然后传递一些东西,我认为这将是一个数组作为第二个参数,用于替换第一个参数条件字符串中的值。这是正确的方法吗?或者,我只是在某个地方缺少其他一些大概念,而我却错了吗?我认为以某种方式这必须可行,而不仅仅是生成原始的sql字符串。

最佳答案

听起来您正在执行以下操作:

Model.where("attribute = ? OR attribute2 = ?", [value, value])

而您需要这样做:
# notice the lack of an array as the last argument
Model.where("attribute = ? OR attribute2 = ?", value, value)

请查看 http://guides.rubyonrails.org/active_record_querying.html#array-conditions,以获取有关其工作原理的更多详细信息。

关于ruby-on-rails-3 - 如何在Rails3中的AR查询界面中的何处指定多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com