0

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

act_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>
                                                         ^

AdsPlacement.rb

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

1 回答 1

2

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

于 2010-07-30T00:15:11.023 回答