我有两个表“location”和“members”。位置包含member_id作为外键。 Member包含一个布尔字段“active”。
我希望在member.active为true的某个半径范围内获取所有位置。
到目前为止,以下内容成功获得了半径内的位置:
@locations = Location.near(params[:location], 50, :order => :distance)
但我需要进一步过滤此内容以仅显示活跃成员。任何帮助将不胜感激。我是一个完整的RoR新手,如果问题缺少一些关键信息,请道歉!
答案 0 :(得分:1)
你应该试试这个 -
@locations = Location.joins(:members).near(params[:location], 50, :order => :distance).where("active = 'true'")
或
@locations = Location.joins(:members).near(params[:location], 50, :order => :distance).find(:all, :conditions=>{:active =>'true'})
希望这会对你有所帮助。
答案 1 :(得分:0)
请你试试这个:
Location.joins(:member).where(members: {active: true}).near(params[:location], 50, :order => :distance)
这是编辑过的。