I suspect this has been asked 400 times, but Google yields 2-3 rather complex gymnastics in blogs (and possibly dated), and searching list archives on ruby-forum proves kinda useless. Using standard forms, it''s fairly easy to use @object.errors[:field_name] in the form to embed an error message right next to the field that has the invalid entry. The controller uses a simple conditional with redirect_to to re-display the form if needed. I don''t understand how to reproduce this same straight-forward process when the form uses a form_remote_tag. Is there a simple, universal process for this, or does it really take 40 lbs of hacks to accomplish like the blogs all seem to suggest? If it makes any difference, I do not want some generic red box at the top of the page saying there''s errors below. I want the error messages displayed with the input fields. Quite lost -- clues appreciated. -- gw -- Posted via http://www.ruby-forum.com/.
On Aug 16, 5:25 am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> I suspect this has been asked 400 times, but Google yields 2-3 rather > complex gymnastics in blogs (and possibly dated), and searching list > archives on ruby-forum proves kinda useless. > > Using standard forms, it''s fairly easy to use > @object.errors[:field_name] in the form to embed an error message right > next to the field that has the invalid entry. The controller uses a > simple conditional with redirect_to to re-display the form if needed. > > I don''t understand how to reproduce this same straight-forward process > when the form uses a form_remote_tag. > > Is there a simple, universal process for this, or does it really take 40 > lbs of hacks to accomplish like the blogs all seem to suggest? >It should be reasonably straightforward to re-render the entire form. It might get more complicated if you want to be cleverer that that. I suppose you could have a div/span with a predictable id next to each field then loop over object.errors, inserting relevant content into each of these div/spans Fred> If it makes any difference, I do not want some generic red box at the > top of the page saying there''s errors below. I want the error messages > displayed with the input fields. > > Quite lost -- clues appreciated. > > -- gw > -- > Posted viahttp://www.ruby-forum.com/.
Frederick Cheung wrote:> On Aug 16, 5:25�am, Greg Willits <rails-mailing-l...-ARtvInVfO7m5VldFQK4jKA@public.gmane.orgt> > wrote: >> when the form uses a form_remote_tag. >> >> Is there a simple, universal process for this, or does it really take 40 >> lbs of hacks to accomplish like the blogs all seem to suggest? >> > It should be reasonably straightforward to re-render the entire form. > It might get more complicated if you want to be cleverer that that. I > suppose you could have a div/span with a predictable id next to each > field then loop over object.errors, inserting relevant content into > each of these div/spansSo far I have something like this in the controller. Similar to what I''d do for a non-Ajax routine. if @object.custom_save respond_to do |request_format| request_format.js end else render :action => ''edit_method'' end The view rendered by edit_method uses something like this: <% if @object.errors.on(:field_name) -%> ERROR <% end -%> <input type="text" ...etc... /> The RJS is pretty basic like this: page.replace_html ''formID'', :partial => the_path, :locals => {:object => @object} The page starts with a div for viewing data only. Click and Edit button, and it is replaced with an editable form which includes a Save button. By the time the controller gets to render :action, it seems like the rjs is ineffective. AFAICT (visually) there''s no actual updating of the HTML via RJS. -- gw -- Posted via http://www.ruby-forum.com/.
Greg Willits wrote:> I don''t understand how to reproduce this same [validation display] process > when the form uses a form_remote_tag.> So far I have something like this...BTW -- while I''ve been using Ruby and Rails for about 2 years now (on top of using other languages for almost 10 years), much of that has been straight Ruby stuff, and the essentials for non-Ajax Rails apps. I''m understanding quite a bit of Rails now, but JavaScript and Ajax are areas I''ve never spent much time studying. So I''m probably missing some understanding about the processes and interplays about the XHR thing that makes me think this should be simpler than it is. -- gw -- Posted via http://www.ruby-forum.com/.
Greg Willits wrote:> Greg Willits wrote: > >> I don''t understand how to reproduce this same [validation display] process >> when the form uses a form_remote_tag.Figured it out. I pretty much had it right, but I needed some vars re-defined before the form was displayed the second time. So pulled that out into a method which both the first & second pass actions could make use of. -- gw -- Posted via http://www.ruby-forum.com/.