我有以下迁移:
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'
但是,如果我删除“amount”列的默认值,则迁移成功。 任何人都可以帮助找出迁移失败的原因,十进制列的默认值是什么?
答案 0 :(得分:1)
我找到了原因。它是在activerecord-postgres-array gem中。 Active Record 4已经有了postgres数组支持,我只需删除它,迁移成功。
答案 1 :(得分: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