有点难以用标题来解释。
我正在使用Ruby on Rails制作测试成绩应用程序,并且无法找出最佳的ActiveRecord Association设置。
理想情况:有很多用户,并且有很多测试。我需要存储每个测试的每个用户的分数。现在我有这个:
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
虽然看起来不对。我想知道这个的惯例。感谢。
答案 0 :(得分:1)
我会使用三个表/模型:
test
user
(或者,可能更好,student
)test_result
,拥有test_id
,user_id
和score
对应的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