Рельсы зависимые уничтожить в поисках несуществующей таблицы

Я получаю ошибку:

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

как я добавил, соединяет таблицы для достижения результата и не корректирует эти отношения.

Попробуйте воссоздать БД rake db:drop db:create db:migrate

Другие вопросы по тегам