我在尝试销毁活动记录实例时遇到问题。
涉及到以下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
我真的不确定这个错误来自哪里。非常感谢任何帮助!
它没有找到您的指令模型。确保它位于 models 目录中,并适当命名、扩展
ActiveRecord::Base
等。
此外,您应该从 UserClient 模型中的
:dependent => :destroy
行中删除 belongs_to :client
,除非您确实希望删除 user_client 导致删除客户端。听起来应该是相反的,并且这已经在客户端模型中设置了。
还要检查文件名是否与类名相对应。就我而言,我有
Class NameSpace::MyStats
在
namespace/old_stats.rb
Rails 不断抛出“未初始化的常量错误”,直到我将其更改为
namespace/my_stats.rb
就我而言,由于复数,它没有找到正确的类名。因此,我在关联中明确指定了类名。
对于你来说,它看起来像:
has_many :instructions, class_name: "Instruction", :dependent => :destroy