我有一个表格,通过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)
有什么想法吗?
答案 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%']