这似乎不起作用:
@zip = %w[07005, 07034, 07035]
CardSignup.find(:all, :conditions => ["zip_code IN (?)", @zip])
=> [ ]
但是,如果我对第二个邮政编码执行简单的 find_by,它会返回一个结果:
CardSignup.find_by_zip_code("07034")
=> Object<x01231 ..
我做错了什么?
最佳答案
您对数组的实现不正确。你现在的方式是逗号是每个数组对象的一部分:
>> %w[07005, 07034, 07035]
=> ["07005,", "07034,", "07035"]
你应该在删除逗号的情况下实现它:
>> %w{07005 07034 07035}
=> ["07005", "07034", "07035"]
或:
>> [07005, 07034, 07035]
=> [07005, 07034, 07035]
所以完整的实现是:
@zip = %w{07005 07034 07035}
CardSignup.find(:all, :conditions => ["zip_code IN (?)", @zip])
=> [Object<x01231 ..
关于mysql - 你如何在 (?) 调用中执行 SQL 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537913/