Это сводит меня с ума!Этот код работал нормально, но несколько недель назад он перестал работать, и я не могу понять, почему.В основном игра имеет много патчей.Ошибка возникает в моем PatchesController, но она воспроизводится в консоли rails следующим образом:
first_game = Game.find(:first)
first_game.patches
Как только я использую метод исправлений, я получаю это:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: patches.game_true: SELECT * FROM "patches" WHERE ("patches".game_true = 1)
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:221:in `rescue in log'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:204:in `log'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `block in execute'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb:417:in `catch_schema_changes'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `execute'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb:320:in `select'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all'
from /project_root/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:62:in `select_all_with_query_cache'
from /project_root/vendor/rails/activerecord/lib/active_record/base.rb:664:in `find_by_sql'
from /project_root/vendor/rails/activerecord/lib/active_record/base.rb:1578:in `find_every'
from /project_root/vendor/rails/activerecord/lib/active_record/base.rb:618:in `find'
from /project_root/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:60:in `find'
from /project_root/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:400:in `find_target'
from /project_root/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:354:in `load_target'
from /project_root/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:140:in `inspect'
from /usr/local/bin/irb:12:in `<main>'
Теперь, когдаSQL должен действительно сказать «ГДЕ patches.game_id = 1», если я не схожу с ума.Я понятия не имею, почему он генерирует этот SQL!
Вот модели / game.rb:
class Game < ActiveRecord::Base
has_many :patches
end
Вот модели / patches.rb:
class Patch < ActiveRecord::Base
belongs_to :game
end
ИТаблица патчей содержит 'game_id' и 3 записи, все для первой игры.Если я получу один из патчей и перейду на my_patch.game, он вернет объект Game, к которому он принадлежит, без проблем.Любая помощь будет принята с благодарностью!