Ruby中绑定变量并发错误的数量

时间:2010-11-30 05:54:34

标签: mysql ruby-on-rails binding conditional-statements

我有一个表格,通过Ruby Find函数我可以获得表格的所有列表。

conditions = [Project.in_used_projects(:alias => "projects") + " AND name LIKE ? test"]
projects = Project.find(:all, :conditions => conditions)

但是当我添加“AND name LIKE?test”时,我得到错误的绑定变量数。函数 Project.in_used_projects 返回值: projects.status = 2

我不能只将Project.in_used_projects更改为project.status = 2,因为每个项目的值都不同。 我得到的错误是:

wrong number of bind variables (0 for 1) in: (projects.status = 2) AND name LIKE ? test

我知道要绑定变量格式需要:(参数,参数,变量,变量)但我需要它(Paramters,Variable,Paramter,Variable)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在我看来,你的绑定变量数量是错误的。你有1个问号,但0绑定变量。假设你正在某个地方寻找一个名为“test”的名字,你需要将“test”作为绑定变量,或硬编码,就像这样(0绑定变量,0个插槽):

[Project.in_used_projects(:alias => "projects") + " AND name LIKE '%test%'"]

或者像这样(1个绑定变量,1个插槽):

[Project.in_used_projects(:alias => "projects") + " AND name LIKE ?", '%test%']