マルチステップフォームのレールキャストを見たところ、新しいインスタンスを作成するときにうまく機能するマルチステップフォームができましたが、更新と編集は機能しません。マルチステップは実行されますが、最後のステップで続行をクリックしても実行されません更新すると、セッションが失われるようです...
これがコントローラーです...
session[:location_params].deep_merge!(params[:location]) if params[:location]
deep_merge を実行できないというエラーが発生します...
def edit
@location = Location.find(params[:id])
session[:location_params] = @location
@location.current_step = session[:location_step] = @location.steps.first
end
def update
@location = Location.find(params[:id])
@location.current_step = session[:location_step]
if params[:back_button]
@location.previous_step
elsif @location.last_step?
@location.save if @location.all_valid? and @location.changed?
else
@location.next_step
end
session[:location_step] = @location.current_step
if @location.created_at_changed?
flash[:success] = "Location updated!"
session[:location_step] = session[:location_params] = nil
redirect_to @location
else
render 'edit'
end
end
どうぞよろしくお願いいたします。