Cambio de imagen con botones de radio y JQuery

Actualmente estoy atascado tratando de representar diferentes imágenes en la vista del usuario en función de la selección del botón de opción. Puedo manipular la imagen si codifico selecciones, pero no puedo encontrar cómo pasar la selección del usuario de JQuery a Rails.

Primero, mi vista con los botones de radio es así:

<!-- VIEW CODE -->
<% [ 'credit_32.png', 'credit_64.png' ].each do |image| %>
          <%= radio_button_tag 'image', image, @image == image, :class => 'image' %><%= image_tag(image)%>
    <% end %>

Luego tengo un div que estoy tratando de actualizar con cualquiera de las imágenes basadas en la selección, mi función para cambiar, en un archivo javascript escucho esto en el evento de clic:

// Javascript Asset File
    $(function() {
        $("input.image").live("click", function() {
            $image = ($(this).val());
            $.getScript( this.href );
        });
    });

Esto establece la selección del usuario en la variable $image y llama al código index.js.erb que luego volverá a representar un parcial.

// Index.js.erb for responding to
    $("div#button").html("<%= escape_javascript(render(@button)) %>");

El problema que tengo es ¿cómo puedo llevar mi variable anterior a mi parcial?

<!-- Partial Code -->
    <% if @button_image = $image %>
        <%= link_to image_tag(@button_image), button_path(button, :only_path => false), :target => '_blank' %>
    <% else %>
        <%= link_to image_tag('credit_32.png'), button_path(button, :only_path => false), :target => '_blank' %>
    <% end %>

Si pudiera establecer esta variable de instancia @button_image en mi objeto JQuery $image, estaría bien, aunque no sé si esto es posible. ¿Podría posiblemente guardar el objeto JQuery en una sesión y usarlo aquí? Gracias

preguntado el 12 de junio de 12 a las 21:06

1 Respuestas

el $.getScript() método es sólo una forma abreviada de $.ajax() método (enlace: http://api.jquery.com/jQuery.getScript/)

solo puedes usar el normal $.ajax() método con un data atributo. p.ej:

$.ajax({  
  url: this.href,  
  dataType: "script",  
  data: { image: $(this).val() }  
});

ahora en rails puedes acceder a el con el params picadillo.

más información: http://api.jquery.com/jQuery.ajax/

Respondido el 12 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.