2011-03-31 1 views
1

Je suis en train de me familiariser avec les rails 3. Mon dernier speedbump concerne les aides prototypes que j'utilise dans les fichiers js.rjs. Dans certains de mes rails 2 applications, j'ai abandonné le prototype en faveur de jquery, et c'est ce que j'ai fait ici. Pour obtenir les helpers, par exemple page.replace & page.replace_html retour, j'ai ensuite utilisé le plugin jrails qui répliquait la fonctionnalité mais en utilisant jquery au lieu du prototype (ou du moins c'était ma compréhension).prototype_helpers dans rails 3 avec jquery - dois-je encore utiliser le plugin jrails? ou y a-t-il une manière différente maintenant?

J'utilise jquery au lieu de prototype dans mes rails de jouets 3 app et ont frappé le même problème: l'assistant page.replace ne fonctionne pas:

J'ai ce code dans update.js.rjs:

page.alert "posted" 
page.replace "tweets", :partial => "twitter/tweets" 

qui provoque cette erreur de la ligne 2 (l'alerte fonctionne très bien):

RJS error: TypeError: Element.replace is not a function

Ai-je besoin juste installer t il jubile plugin à nouveau? Ou existe-t-il une solution différente ces jours-ci?

reconnaissant pour toute pensée - max

EDIT - i obtenir le même problème lorsque je déplace le code d'un fichier js.rjs dans mon contrôleur, comme ceci:

respond_to do |format| 
    format.js do 
    render :update do |page| 
     page.alert "posted" 
     page.replace "tweets", :partial => "twitter/tweets" 
    end 
    end 
end 

EDIT - dans le fin, par manque de toute autre chose, je viens d'installer la gem jrails et il semble bien maintenant.

Répondre

0

Vous devez utiliser la gemme jquery-rails. Cela remplacera les assistants prototypes par des assistants jquery en fournissant un fichier rails.js. Ajouter

gem 'jquery-rails' 

à votre Gemfile,

bundle install 
rails g jquery:install 

installer la pierre précieuse et générer les fichiers corrects.

+0

J'ai cette gemme déjà (0.2.7) et il est répertorié dans mon Gemfile. J'ai ajouté des détails de l'erreur à mon OP au cas où cela aiderait. –

+0

@Max Williams Je viens de mettre à jour ma réponse. Avez-vous exécuté les deux commandes listées? – TallGreenTree

+0

oui j'ai aussi fait ça. J'ai couru le deuxième encore juste au cas où et il a rapporté que les dossiers existants étaient identiques (ainsi ne les ont pas remplacés). –

Questions connexes