我的用户与我的表"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])
等。