在Rails中自我引用与副本的关联

时间:2016-11-18 14:19:35

标签: ruby-on-rails associations

我正在寻找一种适当的方式来进行特定的自我指涉关联。

我有一个测试模型(用户正在参加课程,他们试图通过测试)。如果用户未通过测试,我希望获得此测试的副本,并且可以在原始测试中看到所有下一次尝试(副本)和原始副本我希望看到id原始测试。

我已经尝试了一些自我引用的东西,但没有运气。

test.rb

    has_many :retestizations
    has_many :retests, through: :retestizations

retestization.rb

    belongs_to :original, class_name: 'Test', foreign_key: 'original'
    belongs_to :copy, class_name: 'Test', foreign_key: 'copy'

迁移:

    def change
        create_table :retestizations do |t|
          t.integer :original
          t.integer :copy

          t.timestamps null: false
        end
      end

有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

也许您想使用STI? 那样的东西?

class Test < ActiveRecord::Base; end
class Original < Test; end
class Copy < Test; end

http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html