Pracując dzisiaj nad Senpuu v5 - zauważyłem że Susanoo (autorski CMS pod Senpuu) nie pokazuje JSowych confirmów. Przykładowo coś takiego:
link_to "Usuń notkę", :confirm=>"Czy jesteś pewien?", :method=>"delete"
nie działało. JS ładował się prawidłowo, jednak po włączeniu Firebuga, natknąłem się na taki oto błąd:
document.on is not a function
A po kliknięciu, zamiast wysyłać żądanie usunięcia, realizowane było normalne "linkowe".
Firebug dokładnie wskazywał na tę metodę:
document.on("click", "a[data-method]", function(event, element) { if (event.stopped) return; handleMethod(element); event.stop(); });
Okazało się, że Rails3 korzysta z nowego Prototype 1.7 - a ja przez przypadek wkleiłem stare. Komunikat zniknął po przywróceniu nowej wersji Prototype. Wziąć ją można z internetu lub generując sobie nowy projekt:
rails new givemeprototype
i kopiując odpowiednie pliki z /public/javascripts/.