【发布时间】:2016-05-31 00:04:05
【问题描述】:
我对构建应用程序很陌生,所以我想问一下在这些模型之间建立关系的最佳方法。
文件夹、相册、图片
我正在使用带有 Postgres 的 Rails 4:
我正在尝试创建可以容纳多张图像或为空的相册,以便以后添加一些内容。相册可以属于0个或多个文件夹,文件夹可以有0个或多个相册或零个或多个图像。图像可以属于文件夹、属于相册、通过相册属于文件夹或者既不在文件夹中也不在相册中。它们都属于一个用户。
这是我在脑海中勾勒出来的。请让我知道您的想法:
user
has_many :folders, :albums, images
folder
belongs_to :user
has_many :albums, :images
album
belongs_to :user, :folder
has_many :images
images
belongs_to :user, :folder, :albums
我很困惑的是你怎么说 CAN has_many 或 CAN belongs_to,因为图像可以存在于除了用户之外的一切之外。
另外,路由会是什么样子。我认为这行不通:
resource :user
resource :folder
resource :album
resource :image
我很难理解会发生什么,因为一切都可以独立于除用户之外的其他一切而存在。
我是否需要为每个项目提供 user_id 参考?
我需要在任何模型中使用任何belongs_to through 吗?
感谢您的帮助?
【问题讨论】:
标签: postgresql ruby-on-rails-4 database-design model routes