在我的Rails 4应用程序(使用PostgreSQL DB)中,我有以下模型结构:
class Product
has_many :items
end
class Item
belongs_to :user
belongs_to :product
end
class User
has_one :profile
delegate :name, to: :profile
end
class Profile
belongs_to :user
end
我无法通过项目的用户名对Items
上的Product
进行查询。我尝试过的一些事情:
Product.first
.items
.includes(:user)
.where("user.name = ?", "Blah")
.references(:user)
Item.where(product_id: 2)
.includes(:user)
.where("user.name = ?", "Blah")
.references(:user)
我也尝试过类似下面的内容而没有成功:
Product.first
.items
.includes(user: :profile)
.where("items.user.profile.name = ?", "Blah")
.references(:user)
以上所有查询都会给我语法错误。我确定我做的事情很傻,但我想知道是否有人可以帮我弄清楚如何执行我的查询。
答案 0 :(得分:0)
Product.first.items.joins(user: :profile).where(profiles: {name: "Blah"})