我有一个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
使用多个表继承,但LcTagJob
与TagJob
类似,我使用单该级别的表继承。)
在一个理想的世界中,当然,我会延长两次课程 - 一次是针对旧服务,一次针对新服务 - 但事实证明这种情况过于具有破坏性并需要花费太多时间和精力,所以我我放入一个肮脏的黑客,并取消定义一些父类的方法。
但是,虽然我可以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!