小编Gri*_*sha的帖子

多个belongs_to到同一个表

我有两张桌子:

货币和利率

currencies: id:int, code:string, name: string

rates: id:int, top_currency_id:int, bottom_currency_id:int, rate:float
Run Code Online (Sandbox Code Playgroud)

我有两个活跃的记录:

class Rate < ActiveRecord::Base
  attr_accessible :bottom_currency, :rate, :top_currency, :top_currency_id

  belongs_to :top_currency, :class_name => 'Currency', :foreign_key => 'top_currency_id'
  belongs_to :bottom_currency, :class_name => 'Currency', :foreign_key => 'bottom_currency_id'
end


class Currency < ActiveRecord::Base
  attr_accessible :code, :name

  has_many :rates
end
Run Code Online (Sandbox Code Playgroud)

所以问题是:当我要执行以下代码时:top_currency = Currency.find_by_id(1)@test = Rate.where(:top_currency => top_currency)

我收到以下错误:

Mysql2::Error: Unknown column 'rates.top_currency' in 
'where clause': SELECT `rates`.* FROM `rates`  WHERE `rates`.`top_currency` = 1
Run Code Online (Sandbox Code Playgroud)

为什么Rails的魔法不起作用?

非常感谢.

ruby-on-rails model-associations ruby-on-rails-3

6
推荐指数
2
解决办法
8386
查看次数