ActiveRecord中是否有方法删除belongs_to关联?

时间:2017-03-12 23:02:53

标签: inheritance activerecord associations shortcut

我有一个Sinatra应用程序,它使用Sidekiq作业标记服务的成员。这是其中一个模型。

class TagInstruction < ActiveRecord::Base
  belongs_to :tag_job
end

我想扩展这个系统,以便它可以使用不同的模型标记完全不同的服务的成员。 结构的某些是相同的,所以我正在扩展类,但实际的标记信息设置不同,因此下面有一个完全独立的表。

class LcTagInstruction < TagInstruction
  self.table_name = 'lc_tag_instructions'
  belongs_to :lc_tag_job
end

(注意:虽然LcTagInstruction使用多个表继承,但LcTagJobTagJob类似,我使用该级别的表继承。)

在一个理想的世界中,当然,我会延长两次课程 - 一次是针对旧服务,一次针对新服务 - 但事实证明这种情况过于具有破坏性并需要花费太多时间和精力,所以我我放入一个肮脏的黑客,并取消定义一些父类的方法。

但是,虽然我可以undef个别方法,但我希望能够undef belongs_to关联。有什么东西可以做到吗?

does_not_belong_to :tag_job

它应该做这样的事情:

undef tag_job
undef tag_job=
undef build_tag_job
undef create_tag_job
undef create_tag_job!

0 个答案:

没有答案