1

我有以下迁移:

class CreateTariffs < ActiveRecord::Migration
  def change
    create_table :tariffs do |t|
      t.string :name
      t.decimal :amount, precision: 10, scale: 6, default: 0.0
      t.timestamps
    end
  end
end

我的迁移失败,但出现以下异常:

undefined method `sql_type' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::ColumnDefinition:0x000000089a4108>/home/polygalin/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-postgres-array-0.0.9/lib/activerecord-postgres-array/activerecord.rb:42:in `quote_with_array'

但是,如果我删除“金额”列的默认值,迁移成功。任何人都可以帮助找出为什么迁移失败并使用小数列的默认值?

4

2 回答 2

1

我找到了原因。它在 activerecord-postgres-array gem 中。Active Record 4 已经有一个 postgres 数组支持,我只是删除它并且迁移成功。

于 2013-09-03T10:12:45.580 回答
0

请尝试通过以下更改运行迁移,如果失败,请告诉我。

class CreateTariffs < ActiveRecord::Migration
  def change
    create_table :tariffs do |t|
      t.string :name
      t.decimal :amount, precision: 10, scale: 6, default: 0.00 # or default: 0
      t.timestamps
    end
  end
end
于 2013-09-03T10:04:40.093 回答