2011-12-20 28 views
6

Soy nuevo en Rails 3.1 y recientemente comencé un proyecto. Mi Gemfile contiene jquery-rails, así:Missing rails.js with jquery-rails

gem 'jquery-rails' 

Y, de hecho, he verificado que está presente (versión 1.0.19) en mi gemset RVM actual (mediante gem list).

empecé a entrar en los formularios habilitados para el Ajax, y de la lectura de varios artículos y entradas de buscar en Google, parece que estoy supone que tiene un archivo llamado rails.js en mi carpeta javascripts (supongo que esto es assets/javascripts/, y yo estoy usando la canalización de activos predeterminada).

Mi pregunta en realidad implica dos partes:

  1. no pude encontrar un archivo rails.js en mi proyecto, incluso después de bundle install, por lo que he descargado desde https://github.com/rails/jquery-ujs y lo puso en mi carpeta assets/javascripts/. ¿Es esto lo correcto?

  2. Al incluir rails.js, mi formulario AJAX ahora se envía tres veces. Tras una investigación más profunda, parece como si todos mis javascript (o jquery ???) se llamaran tres veces. Cuando hago clic en el enlace "destruir" para un objeto (el tipo generado al rails g scaffold something), la ventana emergente de confirmación también aparece tres veces. La eliminación del archivo rails.js también elimina este problema.

Cualquier ayuda o consejo será apreciado grandemente ... He estado buscando en torno a Google y SO durante horas, y no he llegado a ninguna parte. ¡Gracias!

Respuesta

14

jquery-rails sirve jquery y jquery_ujs desde dentro de la gema. No necesita copiar estos archivos en assets/javascripts.

Asegúrese de que tiene estas dos líneas en javascripts/application.js:

//= require jquery 
//= require jquery_ujs 

Y tienen javascript_include_tag 'application' en su diseño.

+1

Eres un salvavidas. Por defecto en lugar de 'aplicación' hay: ¡valores predeterminados! Y debido a eso, los archivos jQuery no se cargan en el navegador. – Peymankh