Je suis nouveau sur les rails alors allez-y doucement. J'ai créé un blog. J'ai mis en place avec succès des commentaires et les ai joints à chaque message. Maintenant ... Je voudrais afficher, dans la barre latérale, une liste des commentaires les plus récents de tous les messages. Je pense qu'il y a deux choses impliquées ici, une mise à jour de comment_controller.rb, et ensuite l'appel de la page actuelle. Voici le code du contrôleur de commentaires.Comment afficher tous les commentaires dans une vue Rails?
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create!(params[:comment])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
Cela ressemble à ce que je cherche. Je l'ai juste essayé et ça n'a pas marché. Je suppose que c'est parce que je le mentionne incorrectement. La deuxième partie (la vue) est en train d'être mise dans le dossier de mise en page pour les messages ... cela change-t-il les @comments en commentaires, et vice versa? – bgadoci
Si vous le mettez dans la mise en page, vous pouvez simplement insérer l'instruction find dans la disposition comme suit: <% Comment.find (: all,: order => 'created_at DESC',: limit => 10) .each faire | commentaire | -%> Je ne sais pas comment cela se formera dans un commentaire, mais j'espère que cela a du sens. En général mettre la logique dans les vues est mal vu, mais la seule autre façon que je peux penser que vous auriez accès à la variable @comments sur chaque page est si vous mettez un crochet à exécuter avant chaque méthode dans ApplicationController. – mmrobins
Qui a travaillé l'homme. Merci. – bgadoci