Cómo llamar a un archivo .js.erb en lugar de un archivo .rjs

Estoy trabajando en una migración de Prototype a jQuery y también debemos eliminar el archivo .rjs cuando podamos. Aquí hay un problema:

Tengo el archivo update_overall_comment.rjs en la carpeta app/views/results:

page.replace 'overall_comment', :partial => 'results/marker/overall_comment', :locals =>  {:result => @result}
page.visual_effect(:highlight, 'overall_comment_text_area', :startcolor => '#BDFCC9')

El archivo _overall_comment.html.erb en la carpeta app/views/results/markers:

<div id="overall_comment">
          <div id="overall_comment_edit">
            <%= form_for @result,
              :remote => true,
              :url => { :action => 'update_overall_comment', :id => @result.id } do |f| %>
              <%= f.text_area :overall_comment,
                :cols => 50,
                :rows => 5,
                :id => 'overall_comment_text_area',
                :onkeydown => "$('overall_comment_submit').enable();" %>
           <div>
             <%= f.submit t(:save_changes),
               :disable_with => I18n.t('working'),
               :disabled => true,
               :id => "overall_comment_submit"%>
           </div>
          <% end %>
    </div>
</div>

Y el archivo results.controller.rb (simplemente muestro la función relevante) en la carpeta app/controllers:

def update_overall_comment
  @result = Result.find(params[:id])
  @result.overall_comment = params[:result][:overall_comment]
  @result.save
end

Lo primero que me gustaría entender es cómo transformar el archivo .rjs en .js.erb en. Lo eliminé y creé update_overall_comment.js.erb (en la misma carpeta) que solo contiene un console.log ('...'), y nunca vi llamar a console.log.

Tienes alguna idea ?

Gracias de antemano.

0

2 Respuestas

Muchas gracias. He cometido algunos errores.

Por ejemplo, pensé que una línea con "//" era un comentario y, de hecho, hace un error ajax. También utilicé parcial para la primera línea y no funcionó.

Y pensé que este archivo js.erb me informaría sobre errores, pero no. Simplemente se detiene cuando no funciona sin ninguna información. Así que tuve que encontrar por mi cuenta que mi versión jQuery no tenía el método de "efecto".

Pero ahora funciona y tu traducción del trabajo visual_effect (acabo de poner 1000ms en vez de 3000).

0
agregado

rename update_overall_comment.rjs to update_overall_comment.js.erb

luego en este archivo:

$('#overall_comment').html("<%= j(render 'results/marker/overall_comment') %>");
$('#overall_comment_text_area').effect("highlight", { color: "#BDFCC9" }, 3000);

PD. no estoy seguro acerca del resaltado, también para verificar que el archivo js.erb se llame/represente, uso alert ('algo aquí'); en lugar de console ('...') ; , pero esto no debería ser una gran diferencia para probar una llamada ajax.

0
agregado
JavaScript - Comunidad española
JavaScript - Comunidad española
4 de los participantes

En este grupo hablamos de JavaScript. Partner: es.switch-case.com