0

昨日、最初のRailsプロジェクトを開始しました。私のアプリケーションには 2 つの多対多 (has_and_belongs_to_many) の関係がありました。モデルのゲームとチームの間に 1 つ、モデルの統計と結果の間にもう 1 つありました。これは、移行を使用して結合テーブルを自分で作成することで、すべて正常に機能していました。

次に、統計と結果の関係を多対多にするのではなく、何対多にするかを決定したので、次の移行を実行し、関係を has_many と belongs_to に切り替えました。

class FixingResultStatRelationship < ActiveRecord::Migration
  def self.up
    add_column :results, :stat_id, :integer
    drop_table "results_stats"
  end

  def self.down
   remove_column :results, :stat_id
   create_table "results_stats", :id => false do |t|
      t.column "result_id", :integer
      t.column "stat_id", :integer
    end
    add_index "results_stats", "result_id"
    add_index "results_stats", "stat_id"
  end
end

次に、これを行うと、たとえば Result.find(0).stat を呼び出すときに NoMethodError が発生するため、新しい 1 対多の関係が機能しないだけでなく、ゲームやチームとの以前の作業中の多対多の関係が機能しなくなります。現在も壊れています。以前は Game.fine(0).teams を呼び出して結果を見つけて表示することができましたが、今では NoMethodError も取得します。何かご意見は?私はかなり迷っており、どんな助けも素晴らしいでしょう。

4

1 に答える 1

0

私は、単一の統計ではなく、属している:統計を持っていることに気付きました。これを修正してサーバーをリロードしたところ、すべてが正常に機能するようになりました。とにかくありがとう、アビー。

于 2009-01-23T18:35:28.540 に答える