2011-03-13 16 views
11


ajax ile yeni başlayan biriyim. Bir kaydırıcım ve bir içerik div'um var, kaydırıcının bağlantıları var (etkinlik, haberler vb.), Içerik div'a (facebook gibi) ajax yüklemesi oluşturmak istiyorum.
Google'ı kullandım, ancak çok eski makaleler buldum (raylar 2, ancak rayları kullanıyorum3).
Raylarda 3 eğitim kitapında raylar ile jquery ajax vardır3, ancak çok küçüktür. Bu noktadaJquery ajax ve Rails 3 -> içerik yükleme

bi'şey: (: Uzak => true) ve ben kısmi _new.html.haml için new.html.haml değiştirildi
Ben uzaktan etiketiyle şeklimi kurma. Ben wl içeren bir new.js.erb dosyası oluşturmanız gerekir düşünüyorum:

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

Mantığım doğru mu?
Raylar ve ajax hakkında iyi bir öğreticiniz veya örnek varsa, lütfen benimle paylaşın. Sen create.js.erb veya create.js.haml bunun nedeni eylem işlenen bir dosya oluşturmak gerekir
Teşekkür

cevap

3

.

İşte iyi öğretici var:

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

Not: makale çağrısı komut S harfle sahiptir escape_javascript bir hata var.

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

ve denetleyici kısmi formu işlemek: en kolay olurdu

+2

teşekkürler! Ancak, bir adım daha ileri gidip, okuyucunun JQuery gemisini, buradaki "kurulum" yönergelerini kullanarak yüklemesi gerektiğini söyleyebilirim: https://github.com/rails/jquery-ujs. Ayrıca, gem yüklemeden önce, gem gerekmiyor çünkü application.rb dosyasından "config.action_view.javascript ..." satırını kaldırın. – Rick

9

jQuery kullanarak .content elemanı onclick yüklemek için

def new 
    render :partial => 'form' 
end 
9

Bunu işlemek için jquery_ujs kullanarak reccomand ediyorum.

Rails 3.1+ ile, gem 'jquery-rails' öğenize ve application.js başlığınıza //= require jquery_ujs ekleyin.

Bağlantılarınızı :remote => true ile ayarlamak, Ajax'ı kullanarak href'i arayacaktır.

sonra yazınızı işlemek için bir show_post.js.erb oluşturabilir senin #content div içine bir blog yazısı yüklemek için ( show_post varsayarak kullandığınız eylem olduğunu ve blog görüntüler bir "_content_post.html.haml" var içerik yayınlama):

$('#content').html('<%= escape_javascript (render :partial => "content_post") %>')

umut bu yardım bağlantıdan