在heroku上的acts_as_list postgres错误

时间:2010-07-29 19:27:51

标签: ruby-on-rails postgresql heroku has-many-polymorphs acts-as-list

我们正在使用has_many_polymorphs和acts_as_list。一切都在本地工作正常,但在heroku上,每次调用几个acts_as_list方法时我们都会收到错误。即由于添加或删除列表中的项目而用新位置更新多个记录的那些记录。

acts_as_list方法示例:

def decrement_positions_on_higher_items(position)
        acts_as_list_class.update_all(
          "#{position_column} = (#{position_column} - 1)", "#{scope_condition} AND #{position_column} <= #{position}"
        )
      end

Postgres错误示例

ActiveRecord::StatementInvalid (PGError: ERROR:  operator does not exist: character varying - integer 
LINE 1: UPDATE "ads_placements" SET position = (position - 1) WHERE ...</p>
                                                         ^

AdsPlacment.rb

acts_as_list :scope => 'placement_id=#{placement_id} AND placement_type=#{quote_value placement_type}'

1 个答案:

答案 0 :(得分:2)

原来这是一个postgres列类型错误。 (字符变化 - 整数)