我在以下三个表格之间建立了关系:User
,Armies
和User_Armies
UserArmies
是我的联接表,其中包含user_id
和army_id
我想使用活动记录构建以下查询,但无法弄清楚:
SELECT ua.number_owned, a.population
FROM user_armies ua
INNER JOIN armies a
ON ua.army_id = a.id
WHERE ua.user_id = 1;
User
has_many User_Armies
。 Armies
has_may User_Armies
(只是使用连接表进行正常设置)。
是否有人知道执行此查询的正确活动记录语法!?
谢谢!
答案 0 :(得分:1)
User_Armies型号:
belongs_to :user
belongs_to :armies
用户模型:
has_many :user_armies
has_many :armies, through: :user_armies
军队模型:
has_many :user_armies
has_many :users, through: :user_armies
控制器:
@user = User.find(params[:id])
@users = @user.armies
答案 1 :(得分:1)
UserArmies.joins(:armies, :user).where('users.id = 1').map { |e| { e.number_owned => e.armies.map(&:population) } }
这样的事情应该有用......