2013-08-27 51 views
0

我有3个表格,注释,用户和图像。rails多层次包含嵌套关联

我试图制定一个查询,将产生包括评论员的信息和头像的职位上的评论数组。

头像存储在图像表中,而用户表包含用户信息加上存储用户头像的图像对象的引用ID。

每个评论都有一个引用用户表中的对象的作者ID。

这是我迄今为止

@comments = Comment.all(:include => [:user => :images], 
      :conditions => { 
       :source => p[:source], 
       :source_id => p[:id], 
       :users => {:id => p[:user_id]}, /* if this result is *user */ 
       :images => {????} /*essentially i need images.id = *user.profile_id */ 
       }) 

无法获取图像的一部分工作,有人可以告诉我怎么样?

+0

发布的型号代码,如果得到了工作你模型关联是对的,你应该可以做@comments = User.find(:id).comments – beck03076

+0

'class User

+0

不应该有一个用户只有一个头像?为什么用户has_many图像的原因? – depa

回答

2

这是我在最后

class User < ActiveRecord::Base 
    belongs_to :image, :foreign_key => "profile_id" 

class Image < ActiveRecord::Base 
    has_one :user 

class Comment < ActiveRecord::Base 
    belongs_to :user 

@comments = Comment.all(:include => [{:user => :image}, :like, :flag], 
      :conditions => { 
       ... 
       }) 

这工作,但如果有人能告诉我,如果这样做了正确的方式,将是巨大的

+0

为什么我们不会使用'.includes'方法? – ahnbizcad