Jquery ajax и Rails 3 -> загрузка контента - PullRequest
11 голосов
/ 13 марта 2011


Я начинающий с AJAX.У меня есть слайдер и div контента, на слайдере есть ссылки (события, новости и т. Д.), Я хочу создать загрузку ajax в div контента (например, facebook).
Я использовал Google, но нашел очень старые статьи (rails2, но я использую rails3).
В учебнике по Rails 3 есть jquery ajax с rails3, но он очень маленький.

Я сейчас:
Я настраивал форму с помощью удаленного тега (: remote => true), и я переименовал new.html.haml в _new.html.haml частичный.Я думаю, что должен создать новый файл .js.erb, который содержит:

$(".menuitem").load("<%= escape_javascript(render('article/new')) %>") .content"); //just an idea

Моя логика верна?
Если у вас есть хороший учебник или пример о rails и ajax, пожалуйста, поделитесь со мной.
Спасибо

Ответы [ 3 ]

9 голосов
/ 24 февраля 2012

Самый простой способ - загрузить элемент .content onclick с помощью jQuery:

$(".menuitem").click(function() {
  $(".content").load("/articles/new");
});

и визуализируйте частичную форму в вашем контроллере:

def new
  render :partial => 'form'
end
9 голосов
/ 21 марта 2012

Я бы порекомендовал использовать jquery_ujs для этого.

В Rails 3.1+ просто добавьте gem 'jquery-rails' в свой гемфайл и //= 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 голосов
/ 13 марта 2011

Вам нужно создать файл для create.js.erb или create.js.haml , потому что это обрабатываемое действие.

Вот хорошийучебное пособие:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/

Примечание: В статье есть ошибка, при которой вызов escape_javascript имеет S в сценарии с большой буквы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...