Вопрос

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top