繁体   English   中英

Rails 数据库和路由的最佳操作

[英]Best Operations for Rails Database and Routes

这个问题更多的是关于结构而不是技术,但是任何有技术建议的人都非常欢迎提供任何帮助。

我正在制作一个 Rails 应用程序,这将有助于我正在为地点工作的电影项目。

主要条目将是项目。 每个项目将有许多只与该项目相关的脚本位置(电影中的设置,如仓库)。 每个脚本位置都会有位置(我们找到的真实仓库的实际位置),这些位置也可能与其他项目相关,因此使用项目删除它们会很糟糕。 我希望以后可以选择将位置分配给其他项目的其他脚本位置(如果它们符合我的需要)。 现在的问题是如何最好地为此设置数据结构和路由。

到目前为止,我想出了:

项目 Model

class Project < ApplicationRecord
  has_many :script_locations, dependent: :destroy
end

脚本位置 Model

class ScriptLocation < ApplicationRecord
  belongs_to :project
  has_many :locations
end

位置 Model

class Location ApplicationRecord
  belongs_to :script_location
end

这效果最好吗? 我正在阅读其他帖子,有些人建议 has_and_belongs_to_many,而有些人说这不是 go 和其他人说 has_many:through 的好方法。 我什至不知道这在这里如何应用。 此外,我想使用 CRUD 处理每个 Model 并稍后添加更多选项以获取其他详细信息。 我刚刚开始并且对rails有一些了解,但我不是专家。 我之前曾询问过另一个关于三重嵌套的项目,但我读过这并不好。 所以任何关于路线的建议也会很棒。

项目 Model

class Project < ApplicationRecord
  has_many :script_locations,dependent: :destroy
end

脚本位置 Model

class ScriptLocation < ApplicationRecord
  belongs_to :project
  has_many :locations,  through: script_locations_locations
end

位置 Model

class Location < ApplicationRecord
   has_many :script_locations,through: script_locations_locations
end

新模型(多对多关系)

class ScriptLocationsLocation < ApplicationRecord
  belongs_to :location
  belongs_to :script_location
end

现在您可以单独插入位置,也可以在插入任何脚本位置的同时插入它。 当您在表单中编写选项时,无论您是要创建新位置还是现有位置。 如果你想创建新的,那么你将创建一个脚本位置到脚本位置表,一个位置到位置表并将它们的关系保存在多对多表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM