0

我确定我在做一些愚蠢的事情,但是我的 AR 代码

@comments = Comment.find(:all, :limit => 10,
                         :joins => "LEFT JOIN `users` ON comments.user_id = users.id",
                         :select => 'comments.*, users.theme')

正在返回正确的 sql:

SELECT comments.*, users.theme from comments LEFT JOIN users on comments.user_id = users.id

当我将它放入 mysql 时,我得到了我想要的结果,但是当我在进行上述 AR 调用之后尝试访问@comment.theme(在@comments 上的每个循环中)时,theme不存在。

那么,我需要对 Comments 模型做些什么来允许连接填充相关的列吗?我认为 Rails 只会将它们添加为我可以抓取的属性。

4

1 回答 1

1

试试这个:

@comments.each do |comment|
  puts comment.theme
end

所有字段都在数组@comments 中,作为Object 类型的Comment,并且字段名称与select 中使用的一样,与它们的原始来源无关。

祝你好运。

于 2012-06-11T05:04:03.230 回答