2013-10-19 176 views
1

我正在嘗試創建ServerReport之間的關係。 Server型號has_many :reportsRails:覆蓋關聯主鍵

Server模式具有以下屬性

  • ID
  • game_server_id

Report模式具有以下屬性

  • ID
  • game_server_id
  • 安裝

我現在面臨的問題是,如果我做了以下

class Server < ActiveRecord::Base 
     has_many :reports 
    end 

    Server.first.reports 

Rails會嘗試匹配的服務器了基於在Reportserver_id領域的報告模型。爲了解決這個問題,我可以很容易地做到以下

class Server < ActiveRecord::Base 
     has_many :reports, source: :game_server 
    end 

    Server.first.reports 

現在,鐵軌將嘗試找到服務器的報告,但匹配Server.idReport.game_server_id。這不是我想要的!

我需要導軌來匹配Report.game_server_idServer.game_server_id。無論如何,我可以改變配置來實現這一點嗎?

回答

1

您可以在關聯中指定外鍵。您可以在documentation中看到所有可用於關聯的選項。

試試這個:

has_many :reports, foreign_key: :game_server_id