Rails: неинициализированная постоянная ошибка при уничтожении Active Record

У меня возникла проблема при попытке уничтожить активный экземпляр записи.

Он включает в себя следующие 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

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


person stellard    schedule 07.04.2009    source источник


Ответы (2)


Он не находит вашу модель инструкции. Убедитесь, что он находится в каталоге моделей, имеет соответствующее имя, расширение ActiveRecord::Base и т. д.

Кроме того, вы должны удалить :dependent => :destroy из строки belongs_to :client в модели UserClient, если вы действительно не хотите, чтобы удаление user_client приводило к удалению клиента. Похоже, должно быть наоборот, и это уже настроено в модели клиента.

person Sarah Mei    schedule 07.04.2009

Также проверьте, чтобы имя файла соответствовало имени класса. В моем случае у меня было

Class NameSpace::MyStats

in

namespace/old_stats.rb

и Rails продолжал выдавать «неинициализированную постоянную ошибку», пока я не изменил ее на

namespace/my_stats.rb
person Maragues    schedule 06.09.2012