1

私のビューでは、各都市の名前とその地域で利用可能なサービス (City Services) を各名前の下に表示するリストを表示する必要があります。これには 2 つのクエリが含まれます。しかし、どうすればそれらを組み合わせてその単純なリストを表示できますか?

モデル...

class City < ActiveRecord::Base
   has_many :city_services, :dependent => :delete_all
end

class CityService < ActiveRecord::Base
   belongs_to :city
end

コントローラー... ここで助けが必要です。

@county = params[:county]
@city_ids = City.where("county = ?", @county).map { |c| c.id }
@city_services = CityService.where( :city_id => @city_ids )

ただし、都市ごとに複数のサービスがあるため、city_services だけをリストすることはできません。そうしないと、都市が複数回リストされます。

4

1 に答える 1

2

これを試してください(都市テーブルは都市と呼ばれていると思います):

@city_services = CityService.joins(:city).where(cities: {country: params[:country]})

個別のリストが必要な場合:

@city_services = CityService.joins(:city).where(cities: {country: params[:country]}).uniq
于 2013-05-15T09:11:57.383 に答える