Я не понимаю, как :remote => true
работает в рельсах. Я знаю, что когда я пишу это, ajax-запрос отправляется и ответ .js
сделан. Но как это работает? Я имею в виду, куда движется действие и т.д.?
Как работает ': remote => true' в рельсах?
Ответ 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.
Ответ 2
Для полной справки это может быть полезно: http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html