带有 mongoid 的嵌套类别

发布于 2024-10-18 08:52:41 字数 257 浏览 2 评论 0原文

我有 mongoid 模型和一些条目,并希望将它们组织成类别。类别应该有一个像这样嵌套的选项:

Videos:
-Car video
-Gadgets Video
--iPad
--Android
Music:
-Pop
--Madonna
-Rap
--2pac
--50cent

How can I do it with mongoid?类别的顺序并不重要。

I have mongoid model with some entries and want to organize them into categories. Categories should have an option to ne nested like this:

Videos:
-Car video
-Gadgets Video
--iPad
--Android
Music:
-Pop
--Madonna
-Rap
--2pac
--50cent

How can I do it with mongoid? The order of categories does not matter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

各空 2024-10-25 08:52:41

您可以使用Mongoid嵌套集

class Category
  include Mongoid::Document
  acts_as_nested_set
end

更新

有不同的模式MongoDB 中的树Acts_as_nested_set 是 DRTW(不要重新发明轮子)解决方案,但其他解决方案可能更适合您。

You can use Mongoid Nested Set:

class Category
  include Mongoid::Document
  acts_as_nested_set
end

UPDATED

There are different patterns of Trees in MongoDB. Acts_as_nested_set is the DRTW (don't reinvent the wheel) solution but others may fit you better.

栖迟 2024-10-25 08:52:41

我用 'mongoid_tree' 实现了嵌套类别模型。这非常简单。

root = Category.new { :name => "Root Category" }
child = Category.new { :name => "Child Category" }
childs_child = Category.new { :name => "Child Child Category" }

root.children << child
root.save
child.children << childs_child
child.save

# get all root categories
Category.where("parent_ids" => []).first
 => "#<Category _id: 4d63cbdf2507e40d03000018, child_ids: [BSON::ObjectId('4d63cbdf2507e40d03000019')], parent_ids: [], name: \"Root Category\">" 

朱利安

I realized a nested category model with 'mongoid_tree'. It's pretty straight forward.

root = Category.new { :name => "Root Category" }
child = Category.new { :name => "Child Category" }
childs_child = Category.new { :name => "Child Child Category" }

root.children << child
root.save
child.children << childs_child
child.save

# get all root categories
Category.where("parent_ids" => []).first
 => "#<Category _id: 4d63cbdf2507e40d03000018, child_ids: [BSON::ObjectId('4d63cbdf2507e40d03000019')], parent_ids: [], name: \"Root Category\">" 

Julian

二智少女猫性小仙女 2024-10-25 08:52:41

对于 mongoid 嵌套集,正确的链接是:https://github.com/thinkwell/mongoid_nested_set

真的很不错的库。 acts_as_nested 使用较少的查询。

For mongoid nested set, the correct link is : https://github.com/thinkwell/mongoid_nested_set.

Really nice lib. acts_as_nested uses less query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文