Usando spinjs-rails
Adicione a gema ao nosso Gemfile:
gem 'spinjs-rails'
Adicione os javascripts ao pipeline de ativos:
//= require spin
//= require jquery.spin
Crie um ouvinte global usando comportamentos:
# app/javascript/main.js.coffee
$ ->
$('[data-behavior~=ajax-spin').on 'click', ->
target = $(this).data('target')
$(target).spin('large')
Adicione o comportamento à visualização:
# app/views/general/index.html.slim
= link_to 'My Link', my_link_path,
remote: true,
data: { behavior: 'ajax-spin', target: '#target-element' }
...
#target-element
.some-content