0

私は2つのモデルを持っています:

データセンター:

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_onehas_manyはどちらも関係の所有側にありhas_oneますが、所有されるものは 1 つだけであることを指定します。両方とも、 との関係の反対側にモデルが必要belongs_toです。

あなたの例では、データセンターがプロバイダー所有し、プロバイダーがデータセンターを所有していると述べました。代わりに、データセンターbelongs_toがプロバイダーである必要があります。

provider_idDatacenter テーブルにも列が必要です。

于 2013-05-31T10:02:01.700 に答える
0

モジュール内に変更has_oneする必要があります。それが役立つことを願っています!belongs_toDatacentre

于 2013-05-31T09:58:03.113 に答える