2016-08-15 5 views
1

を引用することはできません私はRailsの4からRailsの5 に私のアプリを移行しようとするには、ここに私の移行です:Rails5の移行:アレイ

class AddRevealedIdsToUser < ActiveRecord::Migration[5.0] 
    def change 
    add_column :users, :revealed_ids, :text, default: [] 
    end 
end 

とモデル:

serialize :revealed_ids 

それはで完全に働きましたレール4、今私はエラーがあります:

== 20160416214334 AddRevealedIdsToUser: migrating ============================= 
-- add_column(:users, :revealed_ids, :text, {:default=>[]}) 
rails aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

can't quote Array 
/usr/local/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/quoting.rb:177:in `_quote' 
/usr/local/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/postgresql/quoting.rb:96:in `_quote' 

どのように解決するには?

答えて

2

array:trueを移行に追加できます。

add_column :users, :revealed_ids, :text, default: [], array:true 

それは私のためにそれを修正しました。

13

一時的な解決策として、私はそれを手動でシリアル化します。

add_column :users, :revealed_ids, :text, default: [].to_yaml 

Railsリポジトリで問題を公開しました。

+0

これはコアクタの回答です – user2167582

+0

@mikhail問題番号は何ですか? –

関連する問題