2010-11-02 5 views
1

Je construis un modèle qui, chaque fois que le modèle est exécuté, je veux injecter dans un modèle de fil de nouvelles. Mon idée était de créer un after_save dans le modèle, puis d'utiliser un assistant pour remplir les détails du flux. Mais mon modèle ne trouve pas l'aide ...Rails 3 - Helper, où sont-ils supposés être utilisés?

Maintenant, je me demande, à quoi servent les aides, sont-ils vraiment juste pour Views ou?

Dans mon modèle, je veux courir des choses comme: newsfeed.feeded_id = record.id newsfeed.feeded_type = record.class.name

Ce qui est commun à de nombreux modèles dans mon application. Où devrait-il vivre et comment devrait-on y accéder? Merci

+0

Salut, pourriez-vous préciser votre question, pls. Vous avez besoin d'une méthode accessible depuis n'importe quel modèle? – Bohdan

Répondre

1

Les aides sont principalement pour les vues. Ils vous permettent de garder votre code hors des vues et de faire un morceau de code testable qui peut être utilisé lors du rendu de la vue. Il vous permet également de réutiliser des bits de code.

Je ne pense pas qu'il existe des règles générales, mais si vous utilisez le même bit de code de vue plusieurs fois, pensez à l'abstraction partielle. Si vous avez des conditions ou des calculs compliqués, pensez à le placer dans une aide.

Comme un exemple de ce qui est bon à mettre dans les aides, vous n'avez pas besoin de chercher plus loin que Rails lui-même. Les exemples parfaits sont link_to, form_for, etc. Ceux-ci prennent un peu de temps pour construire mais fournissent beaucoup plus de fonctionnalités que d'écrire le HTML à partir de zéro à chaque fois.

0

Comment utiliser un observer?

Vous configurez vos actualités via RSS/ATOM? Your builder view peut être un endroit pour sélectionner les éléments que vous voulez dans votre flux.

Questions connexes