2010-10-11 13 views
0

J'essaie d'ajouter une fonctionnalité de publication en vedette à mon blog Ruby on Rails. Jusqu'à présent, j'ai ajouté une colonne featured_post à ma table post et elle passe un 1 si la case à cocher est sélectionnée et 0 sinon.Ajout de "Messages en vedette" à mon blog

Maintenant, je tente de tirer ces postes en procédant comme suit:

/views/posts/index.html.erb

<% @featured_post.each do |post| %> 
    <%= post.title %> 
    <% end %> 

Et dans le posts_controller.rb que je fais ce qui suit dans l'action index:

@featured_post = Post.all 

Évidemment, cela apporte dans tous les titres de poste qui est pas ce que je veux. Je suppose que je dois ajouter quelque chose au contrôleur à tout le monde pour cela, mais je ne sais pas ce que c'est.

Répondre

3

Dans votre modèle de poste, écrire ce

named_scope :featured,:conditions => {:featured_post => true } 

écrire dans votre contrôleur

@featured_posts = Post.featured 

et vue utiliser,

<% @featured_posts.each do |post| %> 
    <%= post.title %> 
    <% end %> 

maintenant, vous devriez obtenir toutes les fonctionnalités des postes.

+0

Je reçois cette erreur: méthode non définie 'where 'pour # bgadoci

+0

Quelle version de rails utilisez-vous? – nathanvda

+0

J'utilise Rails 2.3.8 – bgadoci