在Rails 3中使用default_scope的PGError“列不存在”

时间:2014-05-14 10:11:32

标签: ruby-on-rails ruby-on-rails-3 rubygems activemodel pg

我有一个rails 2.3.8应用程序,我迁移到rails 3.0.10 但是在迁移之后,我可以在模型中看到使用default_scope的问题。 我很困惑为什么它会来,虽然以前一切都很好。我正在使用pg 0.11 gem。 在开发日志中,我可以看到,在加载模型表时,它尝试按名称执行排序,而不是按pg_class表中的rel_name排序。 在升级之前,相同的代码工作正常。

TestGroup :: PgClass Load(1.1ms) SELECT“pg_class”。* FROM“pg_class”WHERE“pg_class”。“relname”='test_groups'ORDER BY UPPER(name) ASC,relname LIMIT 1 PGError:错误:列“名称”不存在

class TestGroup < ActiveRecord::Base
  default_scope :order => "UPPER(name) ASC"
 <other piece of code...>
end

这让我疯了。我尝试更改模型中的default_scope代码,但这没有帮助。 order(“UPPER(#table_name} .name)ASC”)

非常感谢任何帮助。有什么问题,rails和pg gem如何相互影响?

0 个答案:

没有答案