L'accès rails itinéraires en javascript
Quelqu'un peut-il expliquer comment je peux accéder aux rails de routes/les noms de routes en javascript ?
Voici certaines des choses que j'ai essayé
http://github.com/jsierles/js_named_routes.
mais pas de chance.
- J'ai également regardé tore.darell.non/pages/javascript_routes
- voulez-vous accès à tous les parcours en JavaScript comme vous le voyez par dire
rake routes
?
Vous devez vous connecter pour publier un commentaire.
Je faisais des recherches sur cette question pendant un certain temps et n'ai pas trouvé de mise en œuvre compatible avec Rails 3.
Donc décidé d'écrire mon propre:
https://github.com/railsware/js-routes
kishore je pense que c'est la plus simple, il suffit juste de l'appeler:
Donc, si vous avez dans vos itinéraires.rb, disons:
alors vous voulez l'appeler à l'action index à partir d'un fichier javascript, vous n':
Prendre en compte que le fichier js devrait avoir un .erb extension (ou *.js.erb), de sorte rails sait qui doivent être prétraitées. Sinon, le fichier sera servi en est.
Si je comprends votre exigence correctement vous voulez du code Javascript dans votre point de vue d'avoir accès aux routes nommées. Si oui, alors une façon simple de le faire est de rendre votre code Javascript par l'intermédiaire d'un modèle (ERB, Haml, etc) et ensuite d'élargir les routes quelque chose comme ce qui suit:
ERB:
Haml:
Mise à JOUR: Ajout des suggestions pour
public/javascripts/
casAccéder aux routes nommées à partir du dossier public est un peu plus compliqué mais il y a au moins 2 moyens qui viennent à l'esprit, aucun n'est entièrement satisfaisante, mais, l'un ou l'autre de ce qui peut convenir à votre application
lib/javascripts
à l'aide de ERB nommé comme'*.js.erb'
et unrake
tâche d'étendre ces modèles danspublic/javascript
s avant de les déployer (dire comme une étape dans votre Capistrano recette par exemple). Inconvénient de cette est que vos modifications ne sont pas disponibles en direct sur le site jusqu'à ce que les modèles sont développées et que vous ne pourriez pas obtenir le droit de la syntaxe de votre code javascript avec un.erb
extension de fichiercontent_for :head
bloc d'élargir les routes nommées et les mettre à la disposition de code à partir de vos fichiers javascript. Si vous êtes prudent avec namespacing conventions et cela fonctionne bien. L'inconvénient est que le code de l'appel de ces javascript aides est découplé du code qui définit ce qui pourrait être source de confusion pour les responsables ou sujettes à des abus.Dans certains vue:
Puis dans
public/application.js
(dire)bjg vraiment répondu à cette question, mais je pensais que je l'extrait de la partie concernée et à l'amplifier avec un exemple.
Vous suffit d'indiquer votre point de vue d'une variable chaîne de caractères dont la valeur est un nom de Rails de chemin, et ensuite utiliser cette valeur dans le Javascript de votre formulaire. Un exemple qui illustre comment une méthode de contrôleur pouvez spécifier le chemin d'accès pour une autre méthode, pour être ouverte par le script sur la presse d'un bouton:
Fichier
config/routes.rb
:Commandant
rake routes
va désormais produire, entre autres, ceci:foo_reset_path
est ce que nous allons utiliser ici, mais vous pouvez bien sûr utiliser cette méthode avec un nom de Rails de chemin.Fichier
app/controllers/foo_controller.rb
:Fichier
app/views/foo/show.html.erb
:Je suis en utilisant JQuery ici, mais l'idée de base doit être clair. Le script ajoute un crochet pour le bouton de l'élément dont l'id est
reset_button
, de sorte qu'en cliquant sur le bouton entraîne lereset
méthode defoo_controller
à être appelé.Ce que j'ai fait basé sur Teemu de la grande réponse:
Dans votre contrôleur:
De votre point de vue:
Dans votre js:
Voir http://tore.darell.no/pages/javascript_routes:
Mise à jour: Il semble que si quelqu'un a fourchue si vous préférez jQuery: https://github.com/ajnsit/javascript_routes
module CustomERBEngine