July 8th, 2006

I haven’t been able to find anything built into Rails to present errors from model validation when a request is sent via AJAX.

So I came up with this handly little hack, which I’ve put in my application.rb file.

1
2
3
4
5
6
7
def render_javascript_alert_for_errors_on(object)
  errors = object.errors.full_messages
  alert_text = errors.collect { |error| '-' + error }.join("\n")
  render :update do |page|
    page.alert alert_text
  end
end

This takes the object and displays a nicely-formatted version of all the errors on that object, taking advantage of inline RJS to render the javascript to create an alert().

It works perfectly, but it still feels a little “hacky” to me. Any better ideas?

3 Responses to “Displaying ActiveRecord validation errors from AJAX requests”

  1. pc Says:
    have tried this but for some reason I get last evaluated javascript output to my page just after the alert. have had to resort rendering text inline, and setting status of ,say, 500 . shame i cant fathom why i get js output on page as this method is much tidier !
  2. sdf Says:
    ddf
  3. Random Quote Says:
    Men and their toyes

Leave a Reply