Handling validation errors

Hi,

I have edit page for a model, where edit button is given as
submit_to_remote, where i specify in which div the content should be
updated, but if validation fails, like if while editing, mandatory field
is left empty, i need to update the error in some other div. how is it
possible.

#controller
def create
@question = Question.new(params[:question])
if @question.save
@questions = Question.find(:all, :conditions => {:subject_id =>
@question.subject_id })
#render :text => “saved”
render :partial => “display_all”
#redirect_to :action => ‘display_all’, :subj_id =>
@question.subject_id
else

    @question.errors.each_full do |msg|
      if @error != nil

        @error.concat(msg)
      else
        @error = msg;
      end
    end


  render :text => @error
end

end

This is called from view as
<%= submit_to_remote ‘create’, ‘Create’, :url => {:action => ‘create’},
:update => ‘questions’ %>

I need to update errors in another div say error, that will appear at
the top of the page. how is it possible? can we do with render :update
do |page| ? but it is showing me error

Hi Sharanya,

Try the following which is working fine with the link_to_remote and
remote_form_for

render :update do |page|
if error occurs # write a condition which checks error occurs or
not here
page.show , “errors”
page.replace_html, “errors”, “Write a String after error
occurs here.”
else
page.hide , “errors”
# code u want to update if error not occurs.
end
end

Check development.log if u running application in development mode for
AJAX errors.

Salil G. wrote:

Hi Sharanya,

render :update do |page|
if error occurs # write a condition which checks error occurs or
not here
page.show , “errors”
page.replace_html, “errors”, “Write a String after error
occurs here.”
else
page.hide , “errors”
# code u want to update if error not occurs.
end
end

Check development.log if u running application in development mode for
AJAX errors.

Thankx a lot. It is working with submit_to_remote itself after taking
:update attribute from views page.

Hi Sharanya S.

 This you can also do with only a slight modification to 

submit_to_remote like

<%= submit_to_remote ‘create’, ‘Create’, :url => {:action => ‘create’},
:update => {:success => ‘success_div’, :failure => ‘failure_div’} %>

No other change in controller So for example

if @design.save
#do this
else
#do if fail
end

Sijo