Sql 如何获取关联的记录';s关联的_id是一个给定值
我有一个郊区activerecord,它属于一个城市,并且有许多列表,我想获取郊区城市为给定值的列表Sql 如何获取关联的记录';s关联的_id是一个给定值,sql,ruby-on-rails,postgresql,Sql,Ruby On Rails,Postgresql,我有一个郊区activerecord,它属于一个城市,并且有许多列表,我想获取郊区城市为给定值的列表 listings = Listing.joins(:suburbs).where('listings.updated_at >= ?', 2.months.ago).where('city_id = ?', city_id) 根据给定id查找郊区 查找郊区的所有相关列表。查看更多信息 郊区.find(city\u id).listings.where('updated\u at>
listings = Listing.joins(:suburbs).where('listings.updated_at >= ?', 2.months.ago).where('city_id = ?', city_id)
郊区.find(city\u id).listings.where('updated\u at>=?',2.月前)
我假设您已经定义了这些关联。如果我错了,请纠正我
郊区班:
has_many :listings
belongs_to :city
在列表类中:
belongs_to :suburb
城市级:
has_many :suburbs
现在,要获取city所在的所有列表,您需要先将列表与郊区、然后与city合并,然后过滤出结果。通过这个来更好地理解
listings = Listing.joins(suburb: :city).where('listings.updated_at >= ?', 2.months.ago).where(cities: {id: city_id })
这应该行。我想要该城市所有郊区的列表,这将只返回一个郊区。但是我会看一下这些文件,谢谢。这方面没有什么问题。首先,一个城市可能有许多郊区。其次,
find(city\u id)
将查找id:city\u id错误的郊区。它应该是find\u by(city\u id:city\u id)
。我已经用更多信息更新了答案。一定要去看看。