2

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

但它不起作用。请告诉我如何关联它。BR

4

1 回答 1

3

你必须提供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会照顾好它

于 2013-09-27T09:47:16.067 回答