2011-03-18 24 views
0

我试图找到.user字段是两个值中的任何一个的所有消息。rails 3,在heroku上,如何查询一个字段中的2个不同值中的任何一个?

。用户是一个字符串

@msgs = Foo.find :all, 
     :order => 'created_at ASC', 
     :conditions => [ "(user = ?) OR (user = ?)", @user1, @user2] 

此查询,在Heroku(Postgres的)总是返回空

本地运行,它的预期收益数据。

为什么这不起作用?我非常肯定@ user1和@ user2中的值确实匹配.user字段中的数据,因为当我删除条件时,在VIEW中使用那些相同的变量名进行筛选,可以正常工作。

+0

你能从dev和Heroku发布一些日志吗? – jdl 2011-03-18 23:10:12

+0

不幸的是,没有什么可以发布的,我在执行find()之后记录了@ msgs.inspect,它只是在Heroku上展示了空的[]以及dev(sqllite)上的所有匹配记录。 – jpwynn 2011-03-19 04:24:47

回答

1

问题是Postgres的显然不喜欢有一个名为“用户”字段,当我改变了它的工作完美的字段名。

0

或许是区分大小写的问题?我相信postgres默认是区分大小写的。

尝试

:conditions => [ "UPPER(user) = UPPER(?) OR UPPER(user) = UPPER(?)", @user1, @user2] 
+0

不,数据是一个数字字符串,如“123456789” – jpwynn 2011-03-19 04:22:46

相关问题