left join不提供我想要的对象属性

时间:2012-06-11 04:11:04

标签: ruby-on-rails

我确定我做的很蠢,但我的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的每个循环中)时,{{1不存在。

那么,我是否需要对Comments模型做些特别的事情来允许连接填充关联的列?我认为Rails会将它们添加为我可以抓住的属性。

1 个答案:

答案 0 :(得分:1)

试试这个:

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

所有字段都在数组@comments中,作为对象类型注释,字段名称在选择中使用,不考虑其原始来源。

祝你好运。