Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 3 I';我是铁路工人。如何建立一个模型,使拼贴数组的每个元素;有“你一个”;工作_Ruby On Rails 3_Mongodb - Fatal编程技术网

Ruby on rails 3 I';我是铁路工人。如何建立一个模型,使拼贴数组的每个元素;有“你一个”;工作

Ruby on rails 3 I';我是铁路工人。如何建立一个模型,使拼贴数组的每个元素;有“你一个”;工作,ruby-on-rails-3,mongodb,Ruby On Rails 3,Mongodb,我现在坐在Rails 3和MongoDB中,试图以一种前所未有的方式将模型联系起来。我想拼贴工作图片,但不是拼贴表、幻灯片表、工作表和图像表,我希望每个拼贴都是一个称为“幻灯片”的数组,“幻灯片”中的每个元素都是一个工作id 因此,拼贴是一组工作ID 以下是数据库中的内容(除了客户、工作等等): 我想以某种方式将模型联系在一起,比如拼贴。幻灯片[]有一个作品,而作品属于拼贴。幻灯片[],所以我最终可以写 collage.slides[1].work.image 但我不知道模型之间的关系应该是什

我现在坐在Rails 3和MongoDB中,试图以一种前所未有的方式将模型联系起来。我想拼贴工作图片,但不是拼贴表、幻灯片表、工作表和图像表,我希望每个拼贴都是一个称为“幻灯片”的数组,“幻灯片”中的每个元素都是一个工作id

因此,拼贴是一组工作ID

以下是数据库中的内容(除了客户、工作等等):

我想以某种方式将模型联系在一起,比如拼贴。幻灯片[]有一个作品,而作品属于拼贴。幻灯片[],所以我最终可以写

collage.slides[1].work.image
但我不知道模型之间的关系应该是什么。collage.slides[1]是一个工作id,因此现在可以使用以下工作:

Work.find(collage.slides[1]).image

但这就是迈阿密风格的节目。我希望这足够清楚,如果不清楚的话,很抱歉。

有一对一的关系。在这种情况下,这不是你想要的

如果您使用的是mongoid,那么这是一种适合您的设计。其中有一个拼贴类,它嵌入了许多幻灯片

class Collage
  include Mongoid::Document
  embeds_many :slides
end

class Slide
  include Mongoid::Document
  embedded_in :collage
  belongs_to :works
end

class Work
  include Mongoid::Document
  has_many :Slides
  field :image_url, type: String
end
如果不需要类上的helper方法,只需自己创建数组和嵌入文档,并根据需要使用Ruby驱动程序对其进行操作。基本上,这些类定义将创建以下拼贴文档:

拼贴:

{
  "slides": [
    {
      "works": [ work_id, work_id , ....]
    },
    {
      "works": [ work_id, work_id , ....]
    }
  ]
}

嗨,你查过mongoid或mongomapper了吗?我相信它们都支持活动记录关联。作品可以属于多张幻灯片吗?不,作品不能属于多张幻灯片。将有一个拼贴,十五张幻灯片,每张幻灯片一个作品。。。我开始问一个新问题,我想我现在要怎么做:事实上,我也不再那样做了。
{
  "slides": [
    {
      "works": [ work_id, work_id , ....]
    },
    {
      "works": [ work_id, work_id , ....]
    }
  ]
}