Rails: неинициализированная постоянная ошибка в Active Record destroy
У меня возникает проблема при попытке уничтожить активный экземпляр записи.
Он включает в себя следующее AR
class Client < ActiveRecord::Base
has_many :phone_numbers, :dependent => :destroy
has_many :email_addresses, :dependent => :destroy
has_many :user_clients , :dependent => :destroy
has_many :users, :through => :user_clients
end
class UserClient < ActiveRecord::Base
belongs_to :user
belongs_to :client , :dependent => :destroy
has_many :instructions, :dependent => :destroy
end
При выполнении уничтожения на экземпляре клиента мне присваивается следующая ошибка:
@dead_man = Client.find(params[:id])
@dead_man.destroy => uninitialized constant UserClient::Instruction
Я действительно не уверен, откуда эта ошибка. Любая помощь очень ценится!
Ответы
Ответ 1
Это не находит вашу модель обучения. Убедитесь, что он находится в каталоге моделей, соответствующим образом названном, extends ActiveRecord::Base
и т.д.
Кроме того, вы должны удалить :dependent => :destroy
из строки belongs_to :client
в модели UserClient, если вы действительно не хотите, чтобы пользователь user_client удалял удаление клиента. Похоже, что это должно быть наоборот, и это уже настроено в модели клиента.
Ответ 2
Также проверьте соответствие имени файла имени класса. В моем случае я имел
Class NameSpace::MyStats
в
namespace/old_stats.rb
и Rails продолжали бросать "неинициализированную постоянную ошибку", пока я не изменил ее на
namespace/my_stats.rb