0

我正在尝试用Ruby 和 MongoidTour的序列创建一个:Steps

class Tour
  include Mongoid::Document
  field :name,    type: String
  embeds_many :steps
end

class Step
  include Mongoid::Document
  field :name,    type: String
  embedded_in :tour
end

管理有序步骤的最佳方式是什么?(考虑到:插入、删除、移动步骤)

我的第一反应是做单向链表样式,存储下一步:

class Step
  include Mongoid::Document
  field :name,    type: String

  embeds_one  :step, store_as: "next_step"
  embedded_in :tour
end

如果其他人有更好的设计建议有兴趣:)

谢谢!

4

1 回答 1

1

如果您想更改步骤顺序,使用单向关系将导致难以维护。

我建议使用 embeds_many + 步进订单字段 + 自定义验证器。

于 2012-09-02T15:09:27.933 回答