尝试销毁活动记录实例时遇到问题。
涉及以下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
我真的不确定这个错误来自哪里。非常感谢任何帮助!
答案 0 :(得分:20)
找不到您的指令型号。确保它位于模型目录中,具有适当的名称,扩展ActiveRecord::Base
等等。
此外,您应该从UserClient模型中的:dependent => :destroy
行中删除belongs_to :client
,除非您确实要删除user_client以导致删除客户端。这听起来应该是相反的,并且已经在客户端模型中设置了。
答案 1 :(得分:4)
同时检查文件名是否与类名相对应。在我的情况下,我有
Class NameSpace::MyStats
在
namespace/old_stats.rb
并且Rails继续抛出“未初始化的常量错误”,直到我将其更改为
namespace/my_stats.rb