I am no expert on this topic but Adam's answer seems to be correct. I assume you have something like below in your controller action:
def create
@order = Order.new(params[:order])
if @order.save
responds_to do |format|
format.js
format.html { redirect_to 'xxx' }
end
else
responds_to do |format|
format.js
format.html { render :new }
end
end
end
if you have the above structure, then the create.js.erb is just passing the @order object that has been modified after @order.save call. You can just re-define it in the passed condition as follows(check line no. 4):
def create
@order = Order.new(params[:order])
if @order.save
@order = Order.new
responds_to do |format|
format.js
format.html { redirect_to 'xxx' }
end
else
responds_to do |format|
format.js
format.html { render :new }
end
end
end
Now if the @order has successfully been saved, new order will be created and passed. Otherwise the old @order with validation errors will be passed. Hope this will help.