Рельсы зависимые уничтожить в поисках несуществующей таблицы
Я получаю ошибку:
PG:: UndefinedTable: ERROR: отношение "profile_rsl_codes" не существует LINE 5:
когда я пытаюсь уничтожить профиль.
У меня есть стол rsl_codes_profiles
и в моей модели профиля у меня есть
has_many :rsl_codes_profiles, class_name: "RslCodesProfile", dependent: :destroy
и в моем RslCodesProfile
класс у меня есть:
class RslCodesProfile < ActiveRecord::Base
belongs_to :rsl_code
belongs_to :profile
validates :rsl_code_id, :presence => true
validates :profile_id, :presence => true
validates :rel_type, :presence => true
end
возможно, произошли некоторые миграции и отмена миграции и изменение имени этой таблицы, а затем повторная миграция в случае, если это могло оказать влияние.
Глобальный поиск моего приложения не находит ссылок на profiles_rsl_codes
или же ProfilesRslCodes
или единственное число тех.
Возврат ошибки только указывает на то, где я делаю @profile.destroy
а остальная часть трассировки - это все компоненты фреймворка.
Есть идеи?
2 ответа
Извинения тем, кто потратил время, пытаясь помочь мне в этом. Ошибка была в коде, который я не добавил к вопросу.
Я должен был изменить это в моей модели RslCode
has_and_belongs_to_many :visible_rsl_codes, class_name: "RslCode", foreign_key: "code_visible_to_profile_ids"
has_and_belongs_to_many :visible_comment_rsl_codes, class_name: "RslCode", foreign_key: "comment_visible_to_profile_ids"
который пытался использовать поле в RslCode, которое я с тех пор удалил code_visible_to_profile_ids
а также comment_visible_to_profile_ids
к этому
has_many :code_rsl_code_profiles, -> { where rel_type: 'code' }, class_name: 'RslCodesProfile', source: :rsl_codes_profiles
has_many :visible_rsl_codes, :through => :code_rsl_code_profiles, class_name: 'RslCode', source: :rsl_code
has_many :comment_rsl_code_profiles, -> { where rel_type: 'comment' }, class_name: 'RslCodesProfile', source: :rsl_codes_profiles
has_many :visible_comment_rsl_codes, :through => :comment_rsl_code_profiles, class_name: 'RslCode', source: :rsl_code
как я добавил, соединяет таблицы для достижения результата и не корректирует эти отношения.