是否可以使用单个表继承来破坏轨道关联?



我有一个非常糟糕的情况,单表继承的拙劣实现。我想知道的是,"后代"类是否可以破坏其"父"类的关联。我不认为是这种情况,但我想得到确认我是否可以。

以下是有问题的简化模型:

class CertificateName < ApplicationRecord
has_one :ssl_account, through: :certificate_content
end
class Domain < CertificateName
has_one :ssl_account, touch: true
end 

这是简化的架构(:

create_table "certificate_names", force: :cascade do |t|
t.integer  "certificate_content_id" 
t.integer  "ssl_account_id"
end

在上面的场景中,继承的Domain类是与ssl_account直接关联,还是会通过CertificateName模型关联?根据我所看到的,我认为在我的情况下,ssl_account与模型有直接关系,并且不遵循has_one :through思想?

是否可以将

轨道关联与单个表断开 遗产?

是的。

当您声明具有相同名称的多个关联时,无论在何处声明现有关联,最后评估的关联都将始终破坏现有关联。

关联宏(belongs_tohas_onehas_manyhas_and_belongs_to_many(既生成方法,也生成一个关联反射,它只是保存在类似哈希的结构中,因此传递相同的键(协会的名称(只会破坏它。

class Domain < CertificateName
has_one :ssl_account, touch: true
end 

将始终直接联接到ssl_accounts并期望它具有certificate_name_id外键列。

相关内容

  • 没有找到相关文章

最新更新