【问题标题】:complex mongoid rails model associations复杂的 mongoid rails 模型关联
【发布时间】:2012-03-02 20:18:08
【问题描述】:

我正在使用 devise 作为用户管理系统,并计划使用 CanCan 进行更高级的权限设置。

我想建立一个区域讨论区,我有以下模型

  • 用户模型
  • 城市模型
  • 谈话模型

每个注册用户都可以创建一个城市,然后会获得一个临时的编辑权限,但是管理员可以控制一切,并且可以撤销创建城市的人的权限。至于 Talk 模型,用户只能使用 ajax 创建或删除消息。

例如http://localhost:3000/nyc/ ==> 列出所有谈话消息

http://localhost:3000/nyc/new ==> 创建谈话消息

如何通过 mongoid 关联所有这些关系? 以及如何设置 routes.rb 文件?

【问题讨论】:

    标签: ruby-on-rails model-view-controller ruby-on-rails-3.1 mongoid


    【解决方案1】:

    你可以在你的城市之间添加关联,然后这样说话:

    Class City 
      include Mongoid::Document
    
      has_many :talks
    end
    
    class Talk
    
      include Mongoid:Document
    
      belongs_to :city
    end
    

    请参阅有关 mongoid 关系的文档:http://mongoid.org/docs/relations.html

    【讨论】:

    • 首先,感谢您回答我的问题,您能告诉我如何将用户模型与这两个模型联系起来吗?我想问的是用户模型是否可以同时有很多城市和谈话。
    • 您可以通过belongs_to has_manyUser 链接到您的TalkCity。但取决于您想要执行的类型或请求以及您需要如何实现它。 MongoDB 没有连接系统。因此,您需要通过收集 1 个请求来获取信息。如果您将用户链接到 City 包含一些谈话,您需要执行 3 次请求才能让您的用户全部谈话。您可以将谈话与用户相关联。但是您需要自己维护列表。在它比其他更多关于验证之后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多