查询Ruby on Rails中的两个表

时间:2014-02-19 12:01:29

标签: ruby-on-rails

我有两个表“location”和“members”。位置包含member_id作为外键。 Member包含一个布尔字段“active”。

我希望在member.active为true的某个半径范围内获取所有位置。

到目前为止,以下内容成功获得了半径内的位置:

@locations = Location.near(params[:location], 50, :order => :distance)

但我需要进一步过滤此内容以仅显示活跃成员。任何帮助将不胜感激。我是一个完整的RoR新手,如果问题缺少一些关键信息,请道歉!

2 个答案:

答案 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)

这是编辑过的。