Как работает ': remote => true' в рельсах?

Я не понимаю, как :remote => true работает в рельсах. Я знаю, что когда я пишу это, ajax-запрос отправляется и ответ .js сделан. Но как это работает? Я имею в виду, куда движется действие и т.д.?

Ответ 1

Позвольте мне объяснить весь поток AJAX-Rails и remote=> true.

Во-первых, когда вы добавляете remote => true к форме, она отправляет или вызывает действие, которое вы определили в форме.

Вот пример:

<%= form_tag({:controller => 'my', :action => 'my_data'},:id => 'filter_form', :remote => true) do %>
 #code here
<%= submit_tag 'save', :name => 'commit'%>
<%end%>

Теперь приведенный выше код перейдет к действию my_data в my контроллере.

Здесь вы можете определить тип ответа:

def my_data
  #actions on data here
  respond_to do |format|
    format.js
  end
end

Теперь вам нужно создать файл " .js " с тем же именем, что и действие:

my_data.js.erb

Этот файл " .js " будет обрабатывать форму. Вы можете писать и обновлять элементы документа через jQuery и JavaScript.