2011-04-01 18 views
5

¿Alguien sabe dónde puedo encontrar algún código de ejemplo para implementar las pestañas ajax con jquery ui en Ruby on Rails 3? No puedo encontrar nada, parece que no puedo hacerlo funcionar según los ejemplos que he encontrado para el procesamiento de formularios y comentarios. Eso sí, soy muy nuevo en Ruby on Rails.Implementa las pestañas jquery ui con ajax en Rails?

Basado en las pestañas jQuery UI con el Ejemplo ajax desde el sitio jquery, tengo el siguiente código:

sencillo controlador - maps_controller.rb

def index 
    end 

    def test1 
    @test = "test string" 
    end 

vista asociada - index.html .erb

<script> 
     $(function() { 
      $("#tabs").tabs({ 
       ajaxOptions: { 
        error: function(xhr, status, index, anchor) { 
         $(anchor.hash).html(
          "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
          "If this wouldn't be a demo."); 
        } 
       } 
      }); 
     }); 
     </script> 



<div class="demo"> 

<div id="tabs"> 
    <ul> 
     <li><a href="#content_area">Preloaded</a></li> 
     <li><%= link_to "Test1" , test1_path %></li> 
    </ul> 
    <div id="content_area"> 
     <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> 
    </div> 
</div> 

</div><!-- End demo --> 

test1.h tml.erb

<%= @test %> 

La funcionalidad Ajax parece funcionar. Al hacer clic en la pestaña test1, toda la página se carga en el div con los datos apropiados. Obviamente, esta no es la funcionalidad deseada; solo quiero que test1.html.erb se muestre, no se procesa con application.html.erb.

También he encontrado varios ejemplos específicos de raíles que utilizan la convención de tener un archivo .js.erb. (http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/)

Cualquier entrada en esto sería genial.

+0

¿Tiene algún código para comenzar? – Ant

+0

Lo siento, debería haberlo puesto para comenzar. Ver editar. – Patm

+0

He encontrado que el uso de render: layout => false corrige el problema. Sin embargo, no creo que esta sea la forma correcta de utilizar ajax, ya que no es discreto. – Patm

Respuesta

0

Ponga su código javascript en el archivo application.js, inclúyalo en su vista y listo.

Cuestiones relacionadas