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(…)。包括(:交易员)