删除存在于另一个命名空间 rails 中的模型
Posted
技术标签:
【中文标题】删除存在于另一个命名空间 rails 中的模型【英文标题】:Delete a model present in another namespace rails 【发布时间】:2019-05-25 04:10:59 【问题描述】:在 Rails 中,当我将一个模型作为另一个模型的外键时,我可以删除该模型,同时指定它的关系,例如:
class User < ApplicationRecord
has_many :garments, dependent: :destroy
end
但是如果我有一个模型是在另一个命名空间中创建的,比如超级管理员,那么在这种情况下如何编写依赖销毁关系 例如我正在使用:
class User < ApplicationRecord
has_one superadmin::company , dependent: :destroy
end
这是不正确的。 模型公司存在于命名空间超级管理员中,请告诉他们是否是正确的方法。提前致谢
【问题讨论】:
【参考方案1】:class User < ApplicationRecord
has_one :company, :class_name => "Superadmin::Company", :dependent => :destroy
#has_many :companies, :class_name => "Superadmin::Company", :dependent => :destroy
end
【讨论】:
【参考方案2】:不正确,类名引用模型和命名空间的方式不正确:
不正确:
class User < ApplicationRecord
has_one superadmin::company , dependent: :destroy
end
正确:
class User < ApplicationRecord
has_one :company, :class_name => "Superadmin::Company", :dependent => :destroy
end
【讨论】:
以上是关于删除存在于另一个命名空间 rails 中的模型的主要内容,如果未能解决你的问题,请参考以下文章
Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型