Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails 3中组合这两个查询?_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 如何在Rails 3中组合这两个查询?

Ruby on rails 如何在Rails 3中组合这两个查询?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,在我看来,我需要在每个城市名称下方显示一个列表,其中包含该地区可用服务(城市服务)的每个城市的名称。这涉及两个问题。但是,我如何组合它们并显示简单的列表呢 模型 class City < ActiveRecord::Base has_many :city_services, :dependent => :delete_all end class CityService < ActiveRecord::Base belongs_to :city end 但是,每个

在我看来,我需要在每个城市名称下方显示一个列表,其中包含该地区可用服务(城市服务)的每个城市的名称。这涉及两个问题。但是,我如何组合它们并显示简单的列表呢

模型

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

class CityService < ActiveRecord::Base
   belongs_to :city
end
但是,每个城市都有多个服务,因此我不能只列出城市服务,否则城市将被列出多次。

试试这个(我假设城市表被称为城市):

如果您想要一个不同的列表:

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

非常接近!除了每个城市都有多个服务外,所以在查询结果中我列出了两个城市。是否有一些简单的Ruby可以用于将同一城市的查询结果合并到一个记录中,这样我就可以在视图中列出结果,而不必让某些城市显示两次?例如,这个城市有两个服务,并且显示两次,我如何合并这两个结果?:#,#结果列表应该是什么样的?你想列出所有提供服务的城市吗?每个城市的所有服务?如果您只想列出城市,您可以将
uniq
添加到查询中,即:
@city\u services=CityService.joins(:city).where(城市:{country:params[:country]})。uniq
@city_services = CityService.joins(:city).where(cities: {country: params[:country]})
@city_services = CityService.joins(:city).where(cities: {country: params[:country]}).uniq