2010-07-19 4 views
0

Je n'ai pas ignoré le prototype lorsque j'ai commencé mon nouveau projet et je souhaite passer à JQuery. Quel est le meilleur moyen de changer de bibliothèque?Comment faire pour basculer les bibliothèques JavaScript dans Rails 3

+0

Pouvez-vous clarifier - est votre question sur la configuration de jQuery, ou est-ce sur la conversion du code prototype.js existant en jQuery? –

+0

Je veux juste me débarrasser de toute référence à Prototype. – CountCet

Répondre

1

Vous pouvez supprimer les bibliothèques prototype/scriptaculous et rails.js. Copiez ensuite jquery et le ujs adapter for jquery dans votre répertoire javascripts et incluez-les dans votre mise en page.

Je recommande de vérifier le plugin rails3-generators. Il fournit des générateurs pour des tâches communes comme celle-ci. Dans le cas de jquery, vous devez simplement exécuter le générateur rails g jquery:install et les fichiers seront copiés pour vous et le jeu JAVASCRIPT_DEFAULT_SOURCES dans un initialiseur afin que javascript_include_tag :defaults fonctionne toujours.

+0

cela est également couvert dans Railscasts # 205 à 10:55 – CountCet

0

Mise à jour pour Rails 3.0 RC:

J'ai aussi utilisé le JAVASCRIPT_DEFAULT_SOURCES technique remis à zéro dans un initialiseur pour les bêtas, mais ont découvert que cela a été supprimée dans Rails 3 RC, qui cassera votre application

Vous généralement voir soit une "méthode non définie reset_javascript_include_default '" erreur ou "ActionView constante :: :: Helpers :: AssetTagHelper JAVASCRIPT_DEFAULT_SOURCES non défini (NameError)"

Le correctif/ce qui a changé

Les mainteneurs de rails ont remanié les aides d'étiquettes d'actifs javascript et déplacé la configuration par défaut des scripts dans le railtie. Donc, il vous suffit d'utiliser les éléments suivants dans application.rb:

config.action_view.javascript_expansions = { :defaults => ['jquery', 'rails', 'etc'] } 

Toutes mes excuses pour ma longue intro décousu, avant que la viande - je l'ai mis là pour aider les gens à googler cette question.

Questions connexes