2011-12-20 7 views
6

Jestem nowy w Rails 3.1 i niedawno uruchomiłem projekt. Moja Gemfile zawiera jQuery szyny tak:Brakujące rails.js z jquery-rails

gem 'jquery-rails' 

I rzeczywiście, mam dowód, że to obecny (wersja 1.0.19) w moim obecnym RVM gemset (używając gem list).

zacząłem się do Ajax obsługą form i czytając różne artykuły i posty z Googling wydaje się, że mam mieć plik o nazwie rails.js w moim folderze javascripts (zakładam to assets/javascripts/, a ja używam domyślnego potoku aktywów).

Moje pytanie faktycznie składa się z dwóch części:

  1. nie mogłem znaleźć plik w moim projekcie rails.js nawet po bundle install, więc ściągnąłem go z https://github.com/rails/jquery-ujs i umieścił go w swoim folderze assets/javascripts/. Czy to jest właściwa rzecz?

  2. Po dodaniu rails.js, moja forma Ajax przesyła się teraz trzy razy. Po dalszych badaniach wydaje się, że wszystkie moje javascript (lub jquery ???) są wywoływane trzy razy. Kiedy kliknę link "zniszcz" dla obiektu (rodzaj wygenerowany, gdy jesteś rails g scaffold something), pojawia się również trzy razy okienko z potwierdzeniem. Usunięcie pliku rails.js również usuwa ten problem.

Każda pomoc lub porada zostaną docenione ... Przez długie godziny szukałem w Google i SO, a nigdzie się nie pojawiłem. Dzięki!

Odpowiedz

14

jquery-rails służy jquery i jquery_ujs od wewnątrz klejnotu. Nie musisz kopiować tych plików do zasobów/javascripts.

Upewnij się, że te dwie linie w JavaScripts/application.js:

//= require jquery 
//= require jquery_ujs 

I mieć javascript_include_tag 'application' w układzie.

+1

Jesteś ratownikiem życia. Domyślnie zamiast "application" istnieją: defaults! A z tego powodu pliki jQuery nie ładują się w przeglądarce. – Peymankh