我正在尝试使用irb为我的rails项目构建一个查询。
Test.joins(:server).where(server: { admin_user_id: 1})
会出现以下错误:
ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:没有这样的列:server.admin_user_id:SELECT" tests"。* FROM" tests" INNER JOIN"服务器" ON"服务器"。" id" ="测试"。" server_id"在哪里"服务器"。" admin_user_id" = 1
这似乎在抱怨无法在服务器表中找到admin_user_id列。现在奇怪的是,如果我sql进入那个确切的数据库并运行:
select * from servers where admin_user_id = 1;
它返回行。
如何正常运作?
答案 0 :(得分:1)
出现错误,因为生成的SQL引用了不存在的表server
(其servers
)。
您可以使用@ RSB的答案,或者如果您想保持相同的哈希语法:
Test.joins(:server).where(servers: { admin_user_id: 1})
中的示例
答案 1 :(得分:0)
试试这个
Test.joins(:server).where("servers.admin_user_id =?", 1)