【发布时间】:2016-03-11 07:11:02
【问题描述】:
class A < ActiveRecord::Base
has_one :b, class_name: "Something::B"
end
module Something
class B < ActiveRecord::Base
end
end
假设上述类结构具有实际表名a 和something_b,我想创建以下 SQL 查询。
SELECT "a".* FROM "a"
INNER JOIN "something_b" ON
"something_b"."a_id" = "a"."id"
WHERE "something_b"."some_column" = "some_value" LIMIT 1
我尝试了一些类似的东西
A.joins(:b).find_by(b: { some_column: 'some_value' })
但结果查询如下,在WHERE 子句中有"b" 而不是"something_b"。
SELECT "a".* FROM "a"
INNER JOIN "something_b" ON
"something_b"."a_id" = "a"."id"
WHERE "b"."some_column" = "some_value" LIMIT 1
有没有办法在不显式指定表名的情况下做到这一点?
A.joins(:b).find_by(something_b: { some_column: 'some_value' })
【问题讨论】:
-
你的数据库表是否命名为 something_b?
标签: sql ruby-on-rails ruby-on-rails-4 activerecord