2011-03-13 14 views
11


Soy un principiante con ajax. Tengo un control deslizante y un contenido div, el control deslizante tiene enlaces (eventos, noticias, etc.), quiero crear ajax load para contenido div (como facebook).
Utilicé google, pero encontré artículos muy antiguos (rieles 2, pero uso rails3).
En Rails 3 el libro tutorial tiene jquery ajax con rails3, pero es muy pequeño.Jquery ajax y Rails 3 -> cargar contenido

I'am en este punto:
que la creación de mi forma remota con la etiqueta (: retirado => true), y rebautizado new.html.haml a _new.html.haml parcial. Creo que debo crear un archivo new.js.erb, que contiene:

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

Mi lógica es ¿verdad?
Si tiene un buen tutorial o ejemplo sobre rails y ajax, por favor comparta conmigo.
Gracias

Respuesta

3

que se necesita para crear un archivo para create.js.erb o create.js.haml porque es que se procesa la acción.

Aquí hay un buen tutorial:

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

Nota: El artículo tiene un error en la llamada a escape_javascript tiene la S en escritura en mayúsculas.

+2

Gracias por el enlace! Sin embargo, iría un paso más allá y diría que los lectores deberían instalar la gema JQuery, a través de las instrucciones de "instalación" aquí: https://github.com/rails/jquery-ujs. Además, antes de instalar la gema, quite la línea "config.action_view.javascript ..." de su archivo application.rb, ya que la gema no lo necesita. – Rick

9

Lo más fácil sería cargar sus elementos onclick.content usando jQuery:

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

y render parcial en el controlador de la forma:

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

Me reccomand usando jquery_ujs para manejar esto.

Con Rails 3.1+, simplemente agregue gem 'jquery-rails' a su gemfile y //= require jquery_ujs en su encabezado application.js.

Al establecer sus enlaces con :remote => true, se llamará a href con Ajax.

Para cargar una entrada de blog en su #content div a continuación, puede crear un show_post.js.erb para hacer su entrada (suponiendo show_post es la acción que se utiliza y tiene una "_content_post.html.haml" que deben mostrarse el blog el contenido del post):

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

esperanza esta ayuda

Cuestiones relacionadas