Попытка удалить отношение has_and_belongs_to_many в рельсах
-
19-08-2019 - |
Вопрос
Итак, я только вчера начал свой первый проект по рельсам. В моем приложении было два отношения «многие ко многим» (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. Я исправил это и перезагрузил сервер, и теперь все работает нормально. В любом случае, спасибо, Аби.