“用户”有许多“数据集”。 “数据集”有许多“图形”。如何使用Rails关联建模? 此设置有什么问题吗?
用户基本上可以上传许多数据集。对于每个数据集,用户可以从中创建多个图表。我需要“为用户获取所有图形”和“获取数据集的所有图形”。
模型
class User < ActiveRecord::Base
has_many :datasets
has_many :graphs, through: :datasets
end
class Dataset < ActiveRecord::Base
belongs_to :user
has_many :graphs
end
class Graph < ActiveRecord::Base
belongs_to :dataset
belongs_to :user # Do I need this line? Or is it implicit since it belongs to dataset?
end
表格
用户
id, email
数据集
id, user_id, name
图表
id, dataset_id, type # Do I need "user_id" in here also?
答案 0 :(得分:0)
除了属于用户部分的图表外,它看起来还不错。如果Rails支持belongs_to:through,它可以在这里使用,但实际上,不需要在Graph表上使用user_id - 可以通过数据集简单地检索Graph的用户。