Railsプロジェクトを3.2.22.5から4.0.0にアップグレードするプロセスを進めています。配列は2つのバージョン間でデータベースに保存されます。Rails 3.2からRails 4へのアップグレード後に配列を文字列として保存
私は値が問題なくデータベースに保存し、このようになり、これはのparamsは、レール3.2では、以下の
{"tdr_entry"=>{"value"=>["Eyes", "Hair", "Blood", "", "", ""], "multi"=>"true"}}
のように値を渡しているコントローラ
def create
entry = current_user.tdr_entries.create()
entry.update_attributes(params[:tdr_entry])
if entry.save
result = 'ok'
end
render text: result || 'fail'
end
でアクションを作成する必要がありコンソールから:
=> "---\n- Eyes\n- Hair\n- Blood\n- ''\n- ''\n- ''\n"
しかし、Rails 4にアップグレードした後は、同じことをしようとするとエラーが発生します。
ActiveRecord::StatementInvalid (TypeError: can't cast Array to text:
配列を、以前のRails 3.2と同じフォーマットの文字列に変換するにはどうすればよいですか?
これは可能ですか?またはこれをレール4でどのように動作させてシリアル化するかを完全にリファクタリングする必要がありますか?
乾杯。
は、データベース、あなたが使っていますか?それは、配列のYAML形式のように見えます。 –