我的数据库中有 3 个表
- 用户(id、用户名、电子邮件、密码等...)
- 生产者(id,user_id)
- 地址(名字、城市、addressable_id 等)
生产者与用户表(User.id = Producer.user_id)和地址表(p.id = Address.addressable_id)有链接
现在我想用他的用户名获取所有生产者地址
我正在尝试以下查询,但它没有给出预期的输出
select u.login, p.id, a.city from producers p
join users u on u.id = p.user_id
join addresses a on a.addressable_id = p.id
我的模型和关系
用户.rb
class User < ActiveRecord::Base
has_one :customer
has_one :producer
end
生产者.rb
class Producer < ActiveRecord::Base
belongs_to :user
belongs_to :updated_by_user, :class_name => "User", :foreign_key => "updated_by_user_id"
has_one :address, :as => :addressable
has_many :items
end
地址.rb
class Address < ActiveRecord::Base
belongs_to :addressable, :polymorphic => true
belongs_to :updated_by_user, :class_name => "User", :foreign_key => "updated_by_user_id"
end