2015-10-09 3 views
1

Я следил за инструкциями по рельсам, где мы отправили форму с ajax. Мы использовали remote: true в form_for:Назначение пульта: true в рельсах

<%= form_for @task, remote: true do |f| %> 

Все работает отлично. Но я смущен насчет remote: true. Какова цель remote: true?

ответ

8

JS

remote: true является частью драйвера Rails UJS (unobtrusive Javascript). Он просто добавляет атрибут data-remote: true к любому объекту, добавить его, позволяя Rails UJS сценарий игрового, чтобы связать его с некоторой функциональностью Ajax ...

Some definition from Rails:

Обратите внимание на data-remote="true". Теперь форма будет представлена ​​Ajax , а не обычным механизмом отправки браузера.

Вы, вероятно, не хотите просто сидеть там с заполненным, . Вероятно, вы захотите сделать что-то при успешном представлении . Для этого свяжитесь с событием ajax: success. При сбое, использовать ajax: ошибка. Проверьте это:

It's pretty simple really ....

enter image description here

Это в основном присваивает Javascript .on привязку к любым элементам на странице, которые имеют data-remote: true. Это то, что отправляет вам запрос Ajax.


Крючки

Важно отметить, что этот метод создает several "hooks", который можно использовать вместе с другими JavaScript:

enter image description here

Это позволяет использовать remote: true функциональность и настроить то, что происходит, используя крючки выше ...

#app/views/messages/new.html.erb 
<%= form_for @messages, remote: true do |f| %> 
    <%= f.submit %> 
<% end %> 

#app/assets/javascripts/application.js 
$(document).on("ajax:success", "#messages", function(event, data, status, xhr) { 
    alert("Form submitted, thank you!"); 
}); 
1

remote: true позволяет представить форму или просто создать запрос без обновления страницы

Вы можете использовать пульт: правда со ссылками, а Лучшим примером удаленного представления формы, когда вы upvote/downvote ответ на StackOverflow

2

remote: true генерирует data-remote="true" как HTML

Он представляет form по ajax вместо браузера нормальный представить механизм

Reference

2

:remote => true флаг используется на ссылку или тег формы в файле представления для элемента, который вы хотите, чтобы вызвать AJAX вызова, например

<%= form_for @task, remote: true do |f| %> 

с :remote => true, Rails не автоматически переключать представления, что позволяет JQuery для запуска вместо этого.

Основная цель использования :remote => true с формой - форма, предоставленная Ajax, а не обычный механизм отправки браузера.

Я настоятельно рекомендую вам ознакомиться с Official Rails Documentation for Working with JavaScript in Rails. Там вы найдете несколько примеров использования :remote => true с формами, ссылки и т.д., которые помогут вам понять цель :remote=true в Rails :-)

+0

легко понять –

Смежные вопросы