我有两种模式:
class Location < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :location
end
我按照以下方式查找位置:
locations = Locations.find_by(city: "Orlando")
是否有可能将所有产品连接到一个阵列中,同时清除所有重复的product_id(并且不必担心它最初属于哪个位置)?
答案 0 :(得分:0)
在您的代码中,您只返回一个位置。你的意思是Location.where(city: "Orlando")
吗?假设你这样做我会考虑这样做:
location_ids = Location.where(city: "Orlando").pluck(:id)
products = Product.where(location_id: location_ids)
你也可以使用连接来实现:
products = Product.joins(:location).where(location: {city: "Orlando"})
或者,如果您希望以后提供该位置,请将joins
切换为includes
。