Попытка удалить отношение has_and_belongs_to_many в рельсах - PullRequest
0 голосов
/ 23 января 2009

Итак, я только вчера начал свой первый проект по рельсам. В моем приложении было два отношения «многие ко многим» (has_and_belongs_to_many). У меня было одно между моделями игр и команд и другое между моделями статистики и результатов. Все это работало просто отлично, создав таблицу соединений самостоятельно с миграцией.

Затем я решил, что не хочу, чтобы отношение статистика / результаты было многими ко многим, а что ко многим, поэтому я выполнил следующую миграцию и переключил отношения на has_many и own_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

Тогда, когда я делаю это, не только новые отношения один-ко-многим не работают, так как я получаю NoMethodError при вызове скажем Result.find (0) .stat, но теперь мои предыдущие рабочие отношения многие-ко-многим с игры и команды теперь тоже сломаны. Раньше я мог вызывать Game.fine (0) .teams просто находить и видеть результаты, и теперь я также получаю NoMethodError. Какие-нибудь мысли? Я совершенно заблудился, и любая помощь была бы отличной.

1 Ответ

0 голосов
/ 23 января 2009

Я только что понял, что у меня есть stats_to: вместо единственного stat. Я исправил это и перезагрузил сервер, и теперь все работает нормально. В любом случае, спасибо, Аби.

...