В упрощенном виде примерно вот так.
Во вьюхе:
<div class="msg"></div>
<div class="form-wrap" style="display:block">
<%= form_tag('/feedback', remote: true, format: :json, id: 'feedback') do %>
....
в контроллере
def send_email
....
respond_to do |format|
# if success
msg = success ? 'You request will be success processed'
: 'Ooops. Error occurred. Try later.'
format.json { render json: {msg: msg}.to_json }
end
end
CoffeeScript:
$('#feedback')
.on 'ajax:before', ()->
$('.form-wrap').hide()
$('.msg').html('Sending...')
.on 'ajax:success', (e, data)->
$('.msg').html(data.msg)
Поподробней можно глянуть
тут