2013-09-27 194 views
2

我对RoR和MongoDB有一些疑问(使用gem mongoid)。 例如我有两个集合 - 用户(字段:id,用户名,年龄)和消息(字段:id,message,user_to,user_from)。 我需要关联这个集合。 模型用户Ruby on Rails和mongoid。关系

.... 
has_many :messages 

MESSAGE-

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

回答

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 

user.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会照顾它

+0

致谢。但是,对不起,没有foreignkey,Mongoid不会处理它。我指出foreign_key和这个工作很好。 –