2010-04-19 34 views
0

我有一個ActiveRecord before_save方法拋出一個奇怪的錯誤:PostgreSQL的ActiveRecord的怪事了。最大

class MyThing < ActiveRecord::Base 
    before_save :dostuff 

    def dostuff 
    p self.class.maximum(:mycolumn) 
    end 
end 

當我使用SQLite這個完美工作,現在已經在PostgreSQL-我得到的錯誤:

PGError: ERROR: current transaction is aborted, commands ignored until end of transaction block : SHOW max_identifier_length 

.maximum方法在dostuff方法之外工作,所以我想我只是一次要求太多?是否有另一種方法來獲得將在before_save內工作的整數列的最大值?

+0

看起來問題實際上是因爲我在遷移過程中遇到了一些PostgreSQL不友好的術語,這意味着實際上並不需要表。非常奇怪的錯誤信息,考慮到壽... – 2010-04-21 10:34:25

回答

1

errormessage是關於max_identifier_length,對象名(表,列等)的最大長度。它與SQL函數MAX()無關。看起來您使用的名稱無效,名稱超過63個字符。