Looks good! I used a little different (simple) method in websiteone prototype. This one displays error messages with bootstrap alert class. It is the class we use in the app to display flash messages. I attach the code for you to have a look at: 

    def devise_error_messages!
    return "" if resource.errors.empty?
    messages = resource.errors.full_messages.map { |msg| msg + '<br/>' }.join
    sentence = I18n.t("errors.messages.not_saved",
                      :count => resource.errors.count,
                      :resource => resource.class.model_name.human.downcase)
    html = <<-HTML
      <div class="alert alert-danger">
        <h4>#{sentence}</h4>
        <p>#{messages}</p>
      </div>
    HTML
    html.html_safe
    end

The difference is not big but the UI is more consistent with the rest of the app.