2012-01-18 57 views
1

返回我有这个疑问,当在MySQL命令行运行给出了正确的结果,但不是在通过铁轨多列不由的ActiveRecord在Rails3中

查询执行:

SELECT t1.id, t1.event_id, t2.content, t2.created_at, t3.title FROM t1 
INNER JOIN t2 ON t2.id = t1.event_id 
INNER JOIN t3 ON t3.id = t2.id 
WHERE (t1.id in (SELECT id FROM t4 WHERE attr = 20)) 
ORDER BY t1.created_at DESC 
LIMIT 15 

我用

t1.find_by_sql "<above_sql_query>" 

但它只返回那些涉及t1的列。其结果是一个数组:

[#<t1 id: 3, event_id: 3>] 

我也试图与

t1.find(:all, :select => "<select attributes as above>", :joins => "as above", :conditions => "as above", :limit => 15, :order => "t1.created_at DESC") 

,但仍然给出了同样的结果,只返回关于T1的属性。请帮助我找到执行该命令的最佳方式。

感谢,公关

回答

1

使用的.includes解决了这个问题对我来说。