- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设我们有两个模型,Task 和 User。所以一个用户可以有很多任务,任务也应该可以有很多用户。但是,任务还应该有一个独特的创建者,他也是用户。
例子:
这个上下文中的任务是这样的:任务ID、任务创建者、应执行任务的用户
User_1 创建了一个任务,然后他就是创建者。User_1 指定 User_2 和 User_3 作为执行任务的用户。所以最后这两个用户不是任务的创建者。
如何创建此模型,以便如果我有一个任务对象,我可以找到它的创建者和应该完成它的用户。如果我有一个用户,我该怎么做才能找到他创建的所有任务以及他应该完成的所有任务。
最佳答案
您需要在任务和用户之间建立多对多关系,并且您需要在用户和任务之间建立一个额外的一对多关系,指向创建者(用户)。
沿着这些线的东西:(我通常使用 Mongoid,所以仔细检查 MongoMapper API 中关系的语法 - 下面的链接..你可以手动指定 :foreign_key 和 :class)
这个想法是你在模型之间有两种关系,一种是多对多关系的模型通过它您可以访问 assigned_users
或 assigned_tasks
,以及通过一对多关系您可以访问 creator
任务,或给定用户的 created_tasks
。如果您为关系选择了这些名称,就会很清楚哪个是哪个。
class Task
include MongoMapper::Document
key :title, String , :required => true
key :user_ids , Array
has_many :users, :in => user_ids # , :as => :assigned_users
key :creator_id , ObjectId
belongs_to: user, :as => :creator
end
class User
include MongoMapper::Document
key: name, String, :required => true
has_many :tasks # , :as => :assigned_tasks
has_many :tasks, :as => :created_tasks
end
参见:
http://mongomapper.com/documentation/plugins/associations.html
关于ruby - MongoMapper:如何创建这样的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290251/
如果我有: class Post include MongoMapper::Document has_many :comments end 如果我这样做: class Comment in
这是我的 irb session : irb(main):001:0> class User irb(main):002:1> include MongoMapper::Document irb(ma
我有一个带有嵌入文档的 mongomapper 文档,我想复制它。 本质上,我想做的是这样的: customer = Customer.find(params[:id]) new_customer =
我试图通过将类继承与 MongoMapper 一起使用来获得更好、更有条理的结果,但遇到了一些麻烦。 class Item include MongoMapper::Document key
有没有办法保存 MongoMapper 模型实例,以便不执行验证但调用回调?这类似于 ActiveRecord 的 whatever.save(false) 我在网上找到了一段代码,可以用来绕过验证和
在 MongoMapper 中,类可以从父类(super class)继承键和方法。在这里,我编写了包含整数键“baz”的代码,以及将其实例的 baz 值设置为连续计数的朴素排序方法。 require
我已经使用 MongoMapper 几个星期了,并且喜欢它的很多功能。最吸引人的功能之一是能够定义自定义 key 类型和验证方法(请参阅本页上的“自定义类型”:http://mongomapper.c
假设我们有两个模型,Task 和 User。所以一个用户可以有很多任务,任务也应该可以有很多用户。但是,任务还应该有一个独特的创建者,他也是用户。 例子: 这个上下文中的任务是这样的:任务ID、任务创
我有一个带有链接数组的 ruby 类。现在我可以保存一个 Paper 对象,即使该数组包含不是有效 url 的链接。我有一个遍历数组并验证 url 并在 url 无效时返回 false 的方法。但
我需要编写一个查询来查找在指定日期创建的所有文档。 假设日期是今天。 我试过了: Document.all(:created_at => Date.parse(Time.now.strftime('%
有没有人有很好的 MongoMapper 文档资源?我一直在阅读 mongoDB 文档,但其中很多都没有转换为 ruby/mm。我一直在试图弄清楚如何做一个 SELECT FROM WHERE E
我怎样才能让一个 mongo 模型进入一个数据库,而另一个使用另一个数据库? 我已发送此链接 https://github.com/jnunemaker/mongomapper/blob/master
我有一个 Rails 应用程序,当前使用 activerecord 来存储和查询产品。 每个产品都有一个类别和子类别,每个子类别由我可以在应用程序中创建的多个字段定义。由此,当用户想要输入特定产品时,
我不能使用 Array#shuffle,因为我没有获取所有文档(我最多只获取 20 个文档)。我如何使用 MongoMapper(即在 MySQL 中使用 ORDER BY RAND())从 Mong
如何在运行时改变当前的MongoMapper数据库? 此外,有没有一种方法可以将模型映射到名称是动态计算的数据库?例如: class MyEntity include MongoMapper:
我正在将 MongoMapper 用于我们的主数据存储,我想针对我们副本集中的从节点而不是主节点运行报告作业。不幸的是,我们的大部分后台作业都是读/写的,需要与主作业相对应。 有什么方法可以做如下的事
MongoMapper with Identity Map 是否支持级联删除?它似乎并不是真的,但我可能在文档中的某处遗漏了一些东西。请考虑以下事项: class User include Mon
尝试使用名为“buy-only”的键为文档设置 MongoMapper 对象。当我尝试启动应用程序时,我得到了这个 (eval):1: syntax error, unexpected '-', ex
我正在寻找使用 MongoMapper 的预加载关联文档。假设我有一位作者对帖子有 :has_one 条件,我应该能够使用单个查询加载作者 Post.find(:all, :include => :a
在 MongoMapper 文档中我找不到任何实际编辑文档的方法。我在别处也找不到任何东西。我能找到的唯一方法是这种方法: class User include MongoMapper::Docu
我是一名优秀的程序员,十分优秀!