从活动记录关系中从Rails 4.0升级到Rails 4.2后出错

时间:2015-04-07 14:48:52

标签: ruby-on-rails activerecord

我已经在官方文档之后从Rails 4升级到Rails 4.2。

顺便说一句,我有一个bug需要修复。

在我的搜索控制器中,我有:

@contents  = Content.published.search_by_text(@query)
  Content Load (248.7ms)  SELECT "contents".*, ((ts_rank(("contents"."tsv"), (to_tsquery('italian', ''' ' || 'ces' || ' ''')), 0))) AS pg_search_rank FROM "contents" WHERE "contents"."state" = $1 AND (published_at <= '2015-04-07 16:38:38.000591') AND ((("contents"."tsv") @@ (to_tsquery('italian', ''' ' || 'ces' || ' '''))))  ORDER BY published_at DESC, pg_search_rank DESC, "contents"."id" ASC  [["state", "published"]]

=> []

@contents.count
PG::SyntaxError: ERROR:  syntax error at or near "AS"

在Rails 4.0中,它返回&#39; 0&#39;。问题当然与@comments有关。

@contents.class
=> Content::ActiveRecord_Relation

我添加了to_a,现在它可以正常工作。

@contents.to_a.count
=> 0

我想了解为什么我需要将活动记录查询的结果转换为数组。 Rails 4.2中有什么变化?

0 个答案:

没有答案