#217 マルチステップ フォーム - Railscastsに示すように、マルチステップ フォームを実装していますが、エラーが発生しました。
can't dump File
アクションは次のとおりnew
です。create
def new
session[:batch_params] ||= {}
@batch = current_user.batches.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @batch }
end
end
def create
session[:batch_params].deep_merge!(params[:batch]) if params[:batch]
@batch = current_user.batches.build(session[:batch_params])
if @uploaded
@batch.file = @uploaded
end
@batch.current_step = session[:batch_step]
if params[:back_button]
@batch.previous_step
elsif @batch.last_step?
@batch.file = session[:file]
@batch.save
else
@batch.next_step
end
session[:batch_step] = @batch.current_step
if @batch.new_record?
render 'new'
else
session[:batch_step] = session[:batch_params] = nil
flash[:notice] = "Batch was successfully created"
redirect_to @batch
end
end
問題は、ファイルを読み取って行数を取得し、2 番目のステップで使用する必要があるため、最初のステップでファイルを更新する必要があることです。そのため、ファイルをセッションに保存しようとしていますが、シリアル化できないため、このエラーが発生しています。
どうすればこれを回避できますか?最初のステップでファイルをアップロードし、次のステップにその URL を提供するだけでよいと思います。それが正しいか?
これどうやってするの?