Où est-link_to_function disparaître dans Rails 3?
-
20-09-2019 - |
Question
Je ne faisais que jouer avec Rails 3 bêta et remarqué que link_to_function est maintenant disparu. Je présume qu'il ya une autre méthode d'obtenir le même résultat (événement onclick?), Mais je me demandais s'il y a un moyen plus Rails-3'y de le faire. TIA.
La solution
Rails 3 semble avoir fait disparaître Prototype Aide en faveur d'une approche moins de la bibliothèque importune / JS agnostique. Le but est d'éliminer tout en ligne javascript généré par Rails. Prototype Helper généré à peu près tous le javascript.
l'une des variantes non à distance des aides va générer le javascript approprié pour un appel à distance dans votre bibliothèque JS de choix tout en fournissant l':. L'option à distance => true
Malheureusement, cela ne se vérifie pas pour le x de fonctionner méthodes. Pour le moment, il y a les anciens prototypes aides qui ne sont plus une partie essentielle de Rails.
Vous pouvez également utiliser l'appel tel que défini dans ActionView :: :: Helpers :: PrototypeHelper JavascriptGenerator :: GeneratorMethods pour fournir le code javascript à: onclick comme html_option pour link_to, mais ce n'est pas exactement assez
.Exemples:
Rails < 3 | Rails 3
link_to_remote "target", url | link_to "target", url, :remote => true
form_remote_for @post | form_for @post, :remote => true
etc ....
Ou quelque chose à cet effet. Je vais avoir du mal à trouver des documents officiels pour sauvegarder mes réclamations. Ainsi, la version notes devront faire pour l'instant.
Avant de pouvoir l'utiliser, vous devez inclure les fichiers source appropriés. Assurez-vous que vous chargez prototype.js et rails.js, ou la bibliothèque et pilote pour cadre JS de choix à leur place.
Rappelez-vous, Rails 3 est en version beta maintenant. Mais cela ne veut pas dire qu'il est fait. Je n'ai honnêtement aucune idée comment link_to_function sera remplacé. Il va à l'encontre de l'idéal javascript discret.
Autres conseils
Pour répondre à ma propre question, semble que cela fonctionne et est suffisant pour ce que je dois:
link_to "name", nil, :onlick => "alert('Hello, world!')"
link_to_remote peut se faire comme ceci
link_to "cible",: distance => true
et de faire un post ajax / get vous avez
link_to "cible", {: controller => contrôleur,: action => méthode,}: distance => true
Dans 2 rails, il était comme ça
link_to_remote "cible",: url => {: Contrôleur => contrôleur,: action => Procédé,}: retiré => True