Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 有并且属于许多查找_Ruby On Rails - Fatal编程技术网

Ruby on rails 有并且属于许多查找

Ruby on rails 有并且属于许多查找,ruby-on-rails,Ruby On Rails,我只知道我会为这件事自责 我有一个交易者模型: class Trader < ActiveRecord::Base has_and_belongs_to_many :locations end classtrader

我只知道我会为这件事自责

我有一个交易者模型:

class Trader < ActiveRecord::Base
  has_and_belongs_to_many :locations
end
classtrader
以及一个位置模型:

class Location < ActiveRecord::Base
  has_and_belongs_to_many :traders
end
类位置
我目前创建了一个名为in_location的类方法:

  def self.in_location(location)
    traders_found = []
    traders = Trader.all

    traders.each do |trader|
      locations = trader.locations
        locations.each do |trader_location|
          traders_found << trader if trader_location == location
        end
    end
    traders_found
  end
def self.in_位置(位置)
交易员_found=[]
交易者=交易者
交易者。每个人都做交易者|
地点=交易员。地点
地点。每个do |交易员|地点|

交易者发现你就不能这样做吗:

location = Location.find(1) # or whatever
location.traders
?


似乎您根本不需要在\u location
方法中使用此

如果您已经拥有该类的实例(即:一个
location
实例),则这是正确的方法。它使用一种“免费”方法,当您设置一个
has\u和\u属于\u多个
关系时,您可以使用这种方法。如果你没有实例,那么@JorgedelosSantos的想法是正确的。没错,我想我已经看得太久了。PS:@JonleePeakman你可能还想看看“急切加载”,这样你就可以以更优化的方式查询位置/交易者。例如:
location=location.where(…)。包括(:交易员)