有人能告诉我这句话的错误吗?

2011-08-19T20:16:05+00:00 app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR:  argument of AND must be type boolean, not type integer
2011-08-19T20:16:05+00:00 app[web.1]: : SELECT "app_permissions".* FROM "app_permissions" WHERE (user_id = 1,2 AND is_shared = 't' AND app_id = '1')):
2011-08-19T20:16:05+00:00 app[web.1]:

代码:
AppPermission.find(:all, :conditions => ["user_id = ? AND is_shared = ? AND app_id = ?", User.find_all_by_facebook_id(@friends_uids).collect { |itm| itm["id"] }, true, @appl_id])

谢谢

最佳答案

错误处于第一/第二AND状态。您可以将此更改为:

AppPermission.find(:all,
  :conditions => ["user_id in (?) AND is_shared = ? AND app_id = ?",
              User.find_all_by_facebook_id(@friends_uids).collect { |itm| itm["id"] },
              true, @appl_id])

编辑:您需要IN (?),因为您得到的是一个集合,而不仅仅是一个值,请查看日志中的最终查询,您将看到它(1,2

关于ruby-on-rails - ActiveRecord错误问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7127001/

10-14 14:07
查看更多