1

Serverとの間の関係を作成しようとしていますReportServerモデルhas_many :reports。_

Serverモデルには次の属性があります

  • ID
  • game_server_id
  • 名前

Reportモデルには次の属性があります

  • ID
  • game_server_id
  • インストール

私が直面している問題は、次のことを行う場合です

    class Server < ActiveRecord::Base
      has_many :reports 
    end

   Server.first.reports

Rails は、モデル内のserver_idフィールドに基づいてサーバーとそのレポートを一致させようとします。Reportこれを解決するには、次のことを簡単に行うことができます

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

   Server.first.reports

これで、Rails はサーバーのレポートを見つけようとしますがServer.idReport.game_server_id. これは私が欲しいものではありません!

に合わせるレールが必要Report.game_server_idですServer.game_server_id。とにかく、これを実現するために構成を変更できますか?

4

1 に答える 1

1

アソシエーションで外部キーを指定できます。関連付けに使用できるすべてのオプションについては、ドキュメントを参照してください。

これを試して:

has_many :reports, foreign_key: :game_server_id
于 2013-10-19T01:13:19.573 に答える