【发布时间】:2014-01-25 19:17:11
【问题描述】:
我应该如何构建这个 Rails 关联?
问题
所以基本上用户可以创建一个数据集,然后从中创建图表。我希望用户能够创建一个项目,并为多个项目标记数据集或图形。如果数据集标记有项目,则不应自动标记属于它的所有图(数据集)。
我有点像 Rails 协会的菜鸟。通读文档听起来我可以做这样的事情。
- “数据集”有_许多“图”。
- “项目”有_许多“数据集”和“图表”。
- “数据集”有_许多“项目”。
- “图表”有_许多“项目”。
解决方案:(正确吗?)
4 个型号:Dataset, Graph, Project, ProjectContent
对于#1:
Dataset has_many Graphs
Graph belongs_to Dataset
对于#2:
Project has_many datasets, through: :project_content
Project has_many graphs, through: :project_content
对于#3:
Dataset has_many projects, through: project_content
对于#4:
Graph has_many projects, through: project_content
【问题讨论】:
-
您能否澄清一下:如果您有一个项目,即使您没有标记相关数据集,您能否为其标记图表?例如:dataset1 有graph1,dataset2 有graph2。 project1 标记了 dataset1 和 graph2。
-
是的,完全是@Chai :) 每个项目一次分配一个项目。
标签: ruby-on-rails ruby-on-rails-4 associations rails-activerecord rails-models