0

我有两个模型:

数据中心:

class Datacentre < ActiveRecord::Base

  has_one :provider

end

和提供者:

class Provider < ActiveRecord::Base

  has_many :datacentres

end

在数据中心表中,provider_id当我尝试在视图中显示它时,我得到了这个:Mysql2::Error: Unknown column 'providers.datacentre_id' in 'where clause': SELECT 'providers'.* FROM 'providers' WHERE 'providers'.'datacentre_id' = 262 LIMIT 11

似乎它的反应相反?

看法:

- Datacentre.find(:all, :order => " name ASC, country ASC", :conditions => "").each do |c|

  %tr
    %td= c.name
    %td= c.provider.name
    %td= c.country
    %td
      = c.address            
      = c.postcode
4

3 回答 3

1

您的数据中心模型应如下所示:

class Datacentre < ActiveRecord::Base
  belongs_to :provider
end

它应该包含provider_id.

你的看法可能像

- Datacenter.order([:name, :country]).each do |c|
...
于 2013-05-31T10:11:05.807 回答
0

您需要更改has_onebelongs_toinDatacentre模块。希望它会有所帮助!

于 2013-05-31T09:58:03.113 回答
0

has_one并且has_many都在关系的所有权方面,但has_one指定只能有一个拥有的东西。他们都应该在与 的关系的另一端有一个模型belongs_to

在您的示例中,您说过数据中心拥有提供者,提供者拥有数据中心。相反,它应该是belongs_to提供者的数据中心。

您还需要provider_idDatacenter 表中的一列。

于 2013-05-31T10:02:01.700 回答