ruby-on-rails - Ruby on Rails 和 mongoid。关系

标签 ruby-on-rails mongodb mongoid

我有一些关于 RoR 和 MongoDB 的问题(使用 gem mongoid)。 例如我有两个收藏- 用户(字段:id、用户名、年龄)和消息(字段:id、消息、user_to、user_from)。 我需要关联这些集合。 模型用户-

....
has_many :messages

模型消息-

....
belongs_to :to_user, :class_name => 'User', :foreign_key => 'user_to'
belongs_to :from_user, :class_name => 'User', :foreign_key => 'user_from'

在我看来调用-

- @messages.each do |message|
  %tr
    %td    
      = message.message
    %td
      = message.to_user.username
    %td
      = message.from_user.username

但是它不起作用。请告诉我如何关联它。 B.R.

最佳答案

您必须提供逆关系

belongs_to :to_user, :class_name => 'User', :inverse_of => :recieved_messages
belongs_to :from_user, :class_name => 'User', :inverse_of => :sent_messages

用户.rb

has_many :recieved_messages, :class_name => 'Message', :inverse_of => :to_user
has_many :sent_messages, :class_name => 'Message', :inverse_of => :from_user

而且您不需要 foreign_keyMongoid 会处理它

关于ruby-on-rails - Ruby on Rails 和 mongoid。关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19047431/

相关文章:

ruby-on-rails - Rails 3.2.13 与 Rails 4.0.1 - 改变了吗?方法变了?

ruby-on-rails - 如何生成设计 gem 的注册 Controller

node.js - NPM 安装错误 (Package.JSON) 未更新

ruby-on-rails - 您可以从 ActiveStorage _remove_ 一个变体吗?

ruby-on-rails - 列出所有关联作为事件管理中的链接

linux - Linux Shell 脚本中复杂的 MongoDB 语法

Java/WildFly/MongoDB/JAAS - 身份验证始终返回 403 - 禁止

ruby-on-rails - 我如何才能只抓取 20 分钟前创建的带有评论的文章?

ruby-on-rails - 在MongoDB中使用巨大的 "documents"不好吗?

ruby-on-rails - Mongoid 查询文档