2009-12-26 105 views
2

我刚刚升级到rails 2.3.5,并且发现了一些加载完成之前完美工作的查询语句,突然停止工作。升级到Rails 2.3.5和Eager加载停止工作?

Advertisement.find :all, :include => [{:user => :contact}, {:apartment => {:building => :address}}], :conditions => [query_info[1]], :order => query_info[0] 

这是错误我得到

Mysql::Error: Unknown column 'company_id' in 'where clause': SELECT * FROM `advertisements` WHERE (company_id = 10 AND on_market = 1) 

原因未找到该列,因为没有,我想包括表,已被列入?据我所知,find语句的语法在最新版本的rails中仍然是正确的,那么给出的是什么?

回答

3

问题不在于我的包含声明是在条件。在老版本的Rails,这是不错做到这一点

conditions => " company_id = 10 " 

其中COMPANY_ID是在包含语句中的一个表中的列。这不起作用,你现在需要包含表名。我猜是因为rails现在有一些奇特的解析。这现在对我来说很有用。

conditions => " users.company_id = 10 "