Jquery ajax и Rails 3 → загрузка содержимого
Я начинаю с ajax. У меня есть слайдер и контент div, ползунок имеет ссылки (событие, новости и т.д.), Я хочу создать ajax-нагрузку для контента div (например, facebook).
Я использовал Google, но я нашел очень старые статьи (рельсы 2, но я использую rails3).
В учебнике Rails 3 есть jquery ajax с rails3, но он очень крошечный.
На этом этапе:
Я настраиваю свою форму с помощью удаленного тега (: remote = > true), и я переименовал new.html.haml в _new.html.haml partial. Я думаю, что я должен создать файл new.js.erb, содержащий:
$(".menuitem").load("<%= escape_javascript(render('article/new')) %>") .content"); //just an idea
Моя логика правильная?
Если у вас есть хороший учебник или пример о рельсах и ajax, пожалуйста, поделитесь со мной.
Благодаря
Ответы
Ответ 1
Самый простой способ - загрузить элемент .content
onclick
с помощью jQuery:
$(".menuitem").click(function() {
$(".content").load("/articles/new");
});
и отрисуйте частичную форму в контроллере:
def new
render :partial => 'form'
end
Ответ 2
Я бы рекомендовал использовать jquery_ujs
для этого.
С Rails 3.1+ просто добавьте gem 'jquery-rails'
в ваш gemfile и //= require jquery_ujs
в заголовок application.js
.
Поздравляя ваши ссылки с помощью :remote => true
, вы вызываете href с помощью Ajax.
Чтобы загрузить сообщение в блоге в свой #content
div, вы можете создать show_post.js.erb для рендеринга вашего сообщения (предполагая, что show_post
- это действие, которое вы используете, и у вас есть "_content_post.html.haml", который отобразить содержимое блога):
$('#content').html('<%= escape_javascript (render :partial => "content_post") %>')
надеюсь, что эта помощь
Ответ 3
Вам нужно будет создать файл для create.js.erb или create.js.haml, потому что он обрабатывает действие.
Вот хороший учебник:
http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/
Примечание. В статье есть ошибка, при которой вызов escape_javascript имеет S в script с заглавной буквы.