我基本上想建立一个类似于 Netflix 的 DVD 租赁模式的关系。
有用户,每个用户都有一个队列,每个队列包含许多 DVD,DVD 可以有许多队列。一个队列属于一个用户。
我不太确定如何在活动记录中进行设置。我想也许一个队列和一个用户应该是一个 has_many :through 关系,但这没有多大意义。
任何帮助表示赞赏!
我基本上想建立一个类似于 Netflix 的 DVD 租赁模式的关系。
有用户,每个用户都有一个队列,每个队列包含许多 DVD,DVD 可以有许多队列。一个队列属于一个用户。
我不太确定如何在活动记录中进行设置。我想也许一个队列和一个用户应该是一个 has_many :through 关系,但这没有多大意义。
任何帮助表示赞赏!
class User < ActiveRecord::Base
has_many :queues
end
class Queue < ActiveRecord::Base
belongs_to :user
has_many :dvd_queues
has_many :dvds, through: :dvd_queues
end
class Dvd < ActiveRecord::Base
has_many :dvd_queues
has_many :queues, through: :dvd_queues
end
class DvdQueue < ActiveRecord::Base
belongs_to :dvd
belongs_to :queue
end
在&之间使用has_many
而不是has_and_belongs_to_many
关联的好处是,这允许您向.Dvd
Queue
priority
DvdQueue
如果我希望用户能够将 DVD 添加到他们的队列并查看他们的队列,哪些模型需要视图和控制器
通常,您会为 User、Queue 和 Dvd 提供相应的控制器,这些控制器提供映射到标准路由的 CRUD 操作,以及用于索引、新建和编辑操作的视图。