Подтвердить что ты не робот

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

Я действительно не уверен, откуда эта ошибка. Любая помощь очень ценится!

4b9b3361

Ответ 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