Reputation: 14448
I have a basic model in which i have specified some of the fields to validate the presence of. in the create action in the controller i do the standard:
@obj = SomeObject.new(params[:some_obj])
if @obj.save
flash[:notice] = "ok"
redirect...
else
flash[:error] = @obj.errors.full_messages.collect { |msg| msg + "<br/>" }
redirect to new form
end
however when i redirect to the new form, the errors show, but the fields are empty. is there a way to repopulate the fields with the entered values so the errors can be corrected easily?
Upvotes: 2
Views: 1069
Reputation: 4418
Capture @obj
in the flash hash as well, and then check for it in the new
action.
@obj = SomeObject.new(params[:some_obj])
if @obj.save
flash[:notice] = "ok"
# success
else
flash[:error] = @obj.errors.full_messages.collect { |msg| msg + "<br/>" }
flash[:obj] = @obj
# redirect to new form
end
In new
:
@obj = flash[:obj] || MyClass.new
Upvotes: 1