0

我是一名使用 Rails 的 PHP 程序员,但似乎无法理解这个简单的 Active Record 调用。基本上,我有两张桌子,exchangesmarkets. 它们如下:

class Market < ActiveRecord::Base
  attr_accessible :date_created, :exchange_id, :market_name, :market_year

  belongs_to :exchange 

end

class Exchange < ActiveRecord::Base
  attr_accessible :date_created, :exchange_name, :exchange_type

  has_many :markets

end

我想Markets在同一个调用中检索所有exchange关于这些的信息markets

在 PHP 中,这看起来像:"SELECT * FROM markets, exchanges WHERE markets.id>0"

我所能做的就是选择所有市场,然后单独查询以查找有关每个市场的交易所信息:

market = Market.first
exchange = Exchange.where(:id => market.exchange_id)

必须有一个更简单的方法。这有意义吗?

4

1 回答 1

2

如果您想要所有市场,包括他们的交易所,那么请执行以下操作:

@markets = Market.includes(:exchange)

如果您想要一个交易所及其所有市场,请执行以下操作:

@exchange = Exchange.includes(:markets).first
@markets = @exchange.markets

如果您需要手动传入 id,请执行以下操作:

@markets = Market.where("exchange_id = ?", put_id_here)

这里有一些关于Rails 中急切加载关联的更多信息。

于 2013-02-14T01:30:02.123 回答