9
votes

Comment appelez-vous une méthode de la vue dans les rails?

Disons que je l'ai fait:

Script / Générez le contrôleur Accueil P>

et dans le contrôleur d'accueil a fait une méthode. P>

def say
  puts "You are here"
end


4 Réponses :


0
votes

Tout d'abord, vous devez exécuter l'application Rails

Vous faites cela en accédant à votre annuaire racine d'application Rails à partir de la ligne de commande et que vous entrez P>

ruby script/server


0 commentaires

4
votes

En bref: vous ne faites pas cela.

Ce que vous faites est:
Vous appelez une action sur un contrôleur. Pour chaque action, il existe une vue correspondante, par ex. "Say.html.erb" dans la vue Répertoire Vues / Accueil.
Appeler cette action et afficher sa vue correspondante, vous pouvez faire quelque chose comme <% = link_to 'dites-le',: contrôleur => 'home' ,: action => '",:" "FOO" '%> dans votre index.html.erb

Si vous vouliez accéder à : somaadditionalparamètre dans l'action , vous le feriez avec Params [: someadditionalparamètre] et serait dans Ce cas, obtenez 'foo' .


0 commentaires

18
votes

Je suppose que vous avez un serveur de rails en cours d'exécution?

Theres Deux possibilités, vous pouvez tout d'abord dire une méthode d'assistant dans le contrôleur à l'aide de: p> xxx pré> dans votre Contrôleur. P>

Alternativement, la meilleure solution serait la méthode de votre mot de voix sur HOME_HELPER (?). Fichier d'assistance RB. P>

Vous pouvez appeler ceci en utilisant simplement Dans votre fichier d'affichage. p>

Notez qu'un pue code> bien placez tout ce qui est dans votre chaîne à stdout, pas de sortie de votre point de vue, si tout ce que vous voulez faire est d'écrire un peu de texte , vous seriez mieux avec simplement émettre une chaîne et utiliser le mécanisme de sortie ERB à votre vue, par exemple P>

Application_Helper.rb P>

logger.error "hello"


1 commentaires

Pour une raison quelconque, je ne pouvais pas le faire fonctionner lors de la mise dans l'application_helper.rb et l'appelant avec <% = dire -%>. Je l'ai bien fait de l'avoir au travail lorsque j'ajouterai "Helper_Method: dites" au sommet du contrôleur et l'appelant avec <% = dire%> avec le signe égal. Merci de me diriger en bonne direction.



1
votes

Eh bien, la vue n'appelle habituellement le contrôleur - il va dans l'autre sens, de ce que je sais. La demande arrive, Rails analyse l'URL en fonction de votre config / routes routes.rb, et il transmet la demande à l'action appropriée dans le contrôleur approprié. Par défaut, Rails fournit un itinéraire pour / nom_contrôleur / nom_action, de sorte que vous pouvez utiliser pour déconner simples autour de ce que Rails fait pour vous.

Après que le contrôleur a été exécuté, Rails rend automatiquement la vue associée, par convention a le même nom que son action. La vue automatiquement-utilisé pour votre action « dire » dans le contrôleur « maison » serait trouvée dans votre structure de répertoires app / views / home / say.html.erb. Vous pouvez modifier ce point de vue automatique rendu en appelant render dans votre action de contrôleur, par exemple render: template =>. Index

Et enfin, comme Konstantinos dit, vous devez démarrer le serveur avant de pouvoir naviguer sur le site dans un navigateur Web. Ce sera à http://127.0.0.1:3000/ par défaut; pour atteindre l'action par exemple du contrôleur de la maison, vous iriez à http://127.0.0.1:3000/home/say .


0 commentaires