Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何设置这种复杂的活动记录关系?_Ruby On Rails_Activerecord_Has Many Through - Fatal编程技术网

Ruby on rails 如何设置这种复杂的活动记录关系?

Ruby on rails 如何设置这种复杂的活动记录关系?,ruby-on-rails,activerecord,has-many-through,Ruby On Rails,Activerecord,Has Many Through,我基本上想建立一种类似于Netflix DVD租赁模式的关系 有用户,每个用户都有一个队列,每个队列包含许多DVD,DVD可以有许多队列。队列属于用户 我不太确定如何在活动记录中设置此项。我想也许队列和用户应该是一种“有很多:通过”的关系,但这没有多大意义 感谢您的帮助 class用户

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

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

我不太确定如何在活动记录中设置此项。我想也许队列和用户应该是一种“有很多:通过”的关系,但这没有多大意义

感谢您的帮助

class用户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\u many
而不是
has\u和
Dvd
Queue
之间的许多关联的好处是,这允许您向
DvdQueue
添加字段,如
priority

如果我希望用户能够 将DVD添加到他们的队列,并查看他们的队列


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

谢谢……这与视图/控制器有什么关系?如果我希望用户能够将dvd添加到他们的队列中,并查看他们的队列,那么哪些型号需要视图和控制器您需要添加
有很多:dvd\u队列
您想使用的任何地方
有很多X到::dvd\u队列
。为什么不使用has\u和\u-attown\u-to\u-many并消除连接模型?