2010-11-06 7 views
2

Dans mon application Ruby on RailsLes rails montrent les vues d'un contrôleur différent

J'ai une page Aboutus - Ceci a un contrôleur et une vue. N'a pas de modèle.

J'ai un modèle Commentaires (généré par les rails générer un commentaire d'échafaudage) - Cela a un contrôleur, vue, modèle

Sur ma page Aboutus, je veux montrer les « Commentaires » du modèle de commentaires, donc Je pense à utiliser l'action Index des commentaires (pour lister les commentaires) et une nouvelle action (pour créer de nouveaux commentaires) sur ma page Aboutus.

J'ai de la difficulté à bien faire les choses.

Voici ce que je faisais: contrôleur Aboutus, j'ai ajouté
redirect_to :controller => "comments", :action => "index"

vues Osec, j'ai ajouté
<%= render 'comments/index' %>

cela ne fonctionne pas, me donne redirect_to Undefined et les erreurs de l'objet nul. Pourriez-vous me conseiller
1. Une bonne façon de le faire
2. Syntaxe
3. Toute chose à faire pour config.rb?

Répondre

3

vous voulez créer une partie que vous utilisez pour rendre les commentaires dans l'affichage de l'index des commentaires et également à votre avis pour la page aboutus

# in about_us and in 'comments#index' 
<%= render :partial 'path/to/_partial' %> 

#in the about_us controller, or whatever controller dispatches the about us view 

@comments = Comment.all.where(:my_conditions) 

#partial view 

<% @comments.each do |comment| %> 
.. 
<% end %> 
+0

Cela fonctionne merci beaucoup. –

+0

Cela ne devrait-il pas être Comment.where (: my_conditions)? Lorsque chacun est appelé dans la vue, il va exécuter la requête. –

+0

bon point. J'ai oublié Rails 3 et le chargement paresseux des collections. –

Questions connexes