2013-10-19 118 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