选择与轨道上其他表相关的用户



我的用户与我的表"Bien"有一对多关系,我希望只选择在我的结果页面中有bien的用户

我的控制器是这样的

def search
@users = User.all
@biens = Bien.near(params[:location], 3, units: :km).where(room_type: params[:room_type], nb_piece: params[:nb_piece])
@hash = Gmaps4rails.build_markers(@bien) do |bien, marker|
marker.lat @bien.latitude
marker.lng @bien.longitude
end
end

我只想选择拥有biens.near(....(的用户。 我尝试了很多解决方案,但我想知道好的解决方案来获得它

谢谢

您可以使用类似这样的内容将用户表连接到 bien 表。 这将为您提供一个内部联接,该联接只会显示相交的记录...

如果用户有很多 biens...

User.joins(:biens).where(...)

如果用户有一个 bien...

User.joins(:bien).where(...)

这将为您提供具有biens的用户列表...

然后,您可以根据自己的喜好在 biens 表上进一步查询:

User.joins(:biens).where('biens.room_type = ?', params[:room_type])

等。

相关内容

最新更新