此行之前适用于SQlite。但是现在我已经切换到postgreSQL,如果数组为空,它会引发异常。
visit(unit) {
case (ClassDecl) `class <Identifier name> { <ClassBodyDeclaration* body> }` : {
...
}
}
什么是最有效的方式来改写这个以便PostgreSQL会很开心?当InstagramMedia.where(instagram_account: [self.instagram_accounts.ids])
为空时
由于
EDIT 错误是:
self.instagram_accounts.ids
它仅在数组为空时出现
答案 0 :(得分:0)
您使用的是什么版本的Rails和Postgres?
将空数组传递到#where
不应该引发错误:
(Rails 4.2.6 and Postgres 9.4)
>> User.where(id: [])
>> User Load (0.5ms) SELECT "users".* FROM "users" WHERE 1=0
[]
看起来你的self.instagram_accounts.ids
可能正在返回一个数组,这意味着你正在传递一个嵌套数组。此功能在4.2中已弃用,但我认为在5.0中已删除。这可能是您错误的来源吗?
WARN DEPRECATION警告:将嵌套数组传递给Active Record finder方法已弃用,将被删除。展平您的阵列 在将其用于'IN'条件之前。
如果不是这样,你可以发布整个错误吗?