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/5/ruby/21.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范围比较字段_Ruby On Rails_Activerecord_Named Scope - Fatal编程技术网

Ruby on rails 在两个表上创建Rails范围比较字段

Ruby on rails 在两个表上创建Rails范围比较字段,ruby-on-rails,activerecord,named-scope,Ruby On Rails,Activerecord,Named Scope,我在一个应用程序中有许多关联的表 class Listing < ActiveRecord::Base belongs_to :house belongs_to :multiple_listing_service end class House < ActiveRecord::Base has_one :zip_code has_one :primary_mls, through: :zip_code end 类列表

我在一个应用程序中有许多关联的表

class Listing < ActiveRecord::Base
  belongs_to :house
  belongs_to :multiple_listing_service
end

class House < ActiveRecord::Base
  has_one :zip_code
  has_one :primary_mls, through: :zip_code
end
类列表
我想创建一个范围,用于生成与关联房屋的主MLS相关的所有列表。换句话说,范围应该生成所有列表,其中关联房屋的多个\u listing\u service\u id=primary\u mls.id

我尝试了几十种嵌套联接作用域,但似乎都不起作用。充其量,他们只是返回所有列表,通常会失败


有什么想法吗?

如果我理解正确,我不确定纯粹的范围是正确的选择。假设你有:

class MultipleListingService < ActiveRecord::Base
  has_many :listings
  has_many :zip_codes
end

我有一个这样的方法,对于一个实例来说很好,但是我需要得到一个包含所有主要列表的数组,这样我就可以从中生成一些图表。把所有的东西都装进内存需要很长时间
class House < ActiveRecord::Base
  ...

  def associated_listings
    primary_mls.listings
  end
end
class Listing < ActiveRecord::Base
  ...
  scope :primary, -> { joins(:houses => [:zip_codes])
                      .where('zip_codes.multiple_listing_service_id = listings.multiple_listing_service_id') }