【问题标题】:Ruby on Rails and mongoid. RelationsRuby on Rails 和 mongoid。关系
【发布时间】:2013-09-27 09:33:53
【问题描述】:

我对 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.

【问题讨论】:

    标签: ruby-on-rails mongodb mongoid


    【解决方案1】:

    您必须提供inverse relation

    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 会处理它

    【讨论】:

    • 谢谢。但是很抱歉,没有foreign_key,Mongoid 不会处理它。我指出了foreign_key,这很好用。
    猜你喜欢
    • 2017-09-26
    • 2013-04-10
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2020-10-02
    相关资源
    最近更新 更多