0

我基本上想建立一个类似于 Netflix 的 DVD 租赁模式的关系。

有用户,每个用户都有一个队列,每个队列包含许多 DVD,DVD 可以有许多队列。一个队列属于一个用户。

我不太确定如何在活动记录中进行设置。我想也许一个队列和一个用户应该是一个 has_many :through 关系,但这没有多大意义。

任何帮助表示赞赏!

4

1 回答 1

1
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关联的好处是,这允许您向.DvdQueuepriorityDvdQueue

如果我希望用户能够将 DVD 添加到他们的队列并查看他们的队列,哪些模型需要视图和控制器

通常,您会为 User、Queue 和 Dvd 提供相应的控制器,这些控制器提供映射到标准路由的 CRUD 操作,以及用于索引、新建和编辑操作的视图。

于 2012-06-19T01:19:15.327 回答