0

有点难以用标题来解释。

我正在使用 Ruby on Rails 制作一个测试成绩应用程序,但无法找出最佳 ActiveRecord 关联设置。

理想情况下:有很多用户,有很多测试。我需要存储每个测试的每个用户的分数。现在我有这个:

class User < ActiveRecord::Base
  has_many :tests
  has_many :scores, :through => :tests
end

class Test < ActiveRecord::Base
  has_many :scores
end

class Scores < ActiveRecord::Base
  belongs_to :users
  belongs_to :tests
end

不过好像不太对。我想知道这个约定。谢谢。

4

1 回答 1

1

我会使用三个表/模型:

  1. test
  2. user(或者,可能更好,student
  3. test_result, 有test_id,user_idscore

对应的Ruby代码:

class User < ActiveRecord::Base
  has_many :tests, through: :test_results
end

class Test < ActiveRecord::Base
  has_many :users, through: :test_results
end

class TestResult < ActiveRecord::Base
  belongs_to :test
  belongs_to :user
end
于 2013-06-10T17:22:26.667 回答