J'ai un modèle de commentaire, j'ai vu des exemples d'utilisation de @comment, :comment, comment
pour référencer l'objet dans MVC. comment puis-je savoir lequel est quoi? Y a-t-il une distinction?J'ai un modèle de commentaire, quoi utiliser dans mes vues? @comment,: commenter ou commenter?
Répondre
@comment
fait référence à une variable d'instance qu'un contrôleur Rails met à la disposition d'une vue. Ceci est l'utilisation la plus courante:comment
est un symbole Ruby et est utilisé lorsque le nom d'un modèle est requis. Vous verrez généralement ceci avec l'aideform_for
et d'autres aides à la vue fournies par Rails.comment
est une variable locale. Vous verrez généralement cela dans Rails lorsqu'un modèle de vue utilise un partial template (appelé simplement partiel). Le modèle de vue parent passe un ou plusieurs de ses variables d'instance dans la partie de sorte que l'a accès/les partiel, quelque chose comme:<%= render :partial => 'comment', :locals => { :comment => @comment } %>
— Dans cet exemple, le commentaire partiel (comment.html.erb
) a accès à la variable d'instance via la variable locale comment
, donc il peut faire des choses comme comment.author
etc.
Cela dépend vraiment du contexte. Le premier, @comment
est généralement utilisé (comme John Topley l'a expliqué de manière similaire) pour configurer une variable à transmettre dans la chaîne de requête à vos vues, assistants et partiels qui sont rendus à partir de cette action.
Si vous utilisez dans un form_for
vous référencer l'objet @comment
vous avez très probablement mis en place dans le contrôleur:
<% form_for @comment do |f| %>
Si vous passez un objet de commentaires comme local à un partiel que vous pourrait indiquer comme un symbole (comme John Topley dit):
<%= render :partial => "info", :locals => { :comment => @comment }
Et si vous utilisiez comme une variable locale, vous pouvez être rendu une collection de commentaires:
<%= render :partial => @post.comments %>
En passant la collection comments
Partielle sera sur le premier introspect objet ici et déterminer est de la classe Comment
et sera donc essayer de rendre les commentaires/_comment.html.erb partielle pour chacun des éléments en la collection (quel que soit le type des autres, ceci est un gotcha), les rendant chacun disponibles sous la forme comment
.
Merci! maintenant j'ai des distinctions et une compréhension explicites! – Winston
- 1. Comment commenter le code dans les vues Rails?
- 2. Passer des variables à Django Commenter Vues
- 3. Répondre Commenter Lien Seulement?
- 4. Commenter les commentaires
- 5. Django Commenter, ajouter un symbole au commentaire d'url?
- 6. Comment commenter un type Enum visible publiquement?
- 7. Commenter FBML
- 8. Comment faire pour commenter comment.text dans vba
- 9. Comment commenter la ligne de commande Windows?
- 10. Raccourci pour commenter CSS dans VS 2008
- 11. Comment commenter dans les fichiers de configuration de Vim: ".vimrc"?
- 12. Comment commenter une expression JSP?
- 13. Comment commenter un commentaire en utilisant le framework de commentaires de Django
- 14. Comment commenter dans la page jspx
- 15. Comment commenter un schéma de données de base?
- 16. Comment commenter les fonctions Python partielles?
- 17. Commenter des blocs dans Eclipse sur Mac
- 18. MVC 3 rompu commenter ctrl + k, ctrl + u dans les vues?
- 19. comment unicode commenter un mp3 en utilisant l'encodeur LAME
- 20. ms-access: comment commenter le code sql?
- 21. Comment coller avec vim sans commenter le code?
- 22. Commenter/décommenter un bloc de code dans le raccourci NetBeans
- 23. Qu'est-ce que la commande courte pour faire un commentaire et ne pas commenter le code?
- 24. Possibilité de commenter le code JSTL?
- 25. ASP.NET MVC Ajax Commenter Ajouter - Rebind commentaires section
- 26. Raccourci Eclipse pour commenter la sélection dans un fichier XML
- 27. python équivalent de « #define func() » ou comment commenter un appel de fonction en python
- 28. Raccourci Eclipse pour commenter jsp, code xml
- 29. Commenter N lignes avec sed/awk
- 30. Comment faire pour commenter sexps en code elisp?
Excuses, John. J'ai senti qu'il avait besoin d'un peu plus d'explications. –
Pas besoin de vous excuser. –
Ceci est incroyable, cela devrait être expliqué plus sur les tutoriels et les livres ruby. Maintenant, mon univers ferroviaire devient plus petit vers la maîtrise. Merci! – Winston