J'ai 3 contrôleurs. Deux articles spécialisés de retour (article, annonce), et un retour soit.Contrôleurs multiples avec logique d'action redondante dans les rails
GET api/announcements/1 -- produces Announcement json
GET api/articles/2 -- produces Article json
GET api/posts/1 -- produces Announcement json
GET api/posts/2 -- produces Article json
la méthode show
pour le contrôleur logique contient des articles qui doivent être dupliqué dans le contrôleur Messages. Plus précisément:
def show
deal_with_params(...)
authorize!(...)
render json: @resource
end
Après avoir chercher la ressource par unique_id
, je sais que c'est le type et peut se lancer à partir de là, mais je veux seulement authorize
et faire quelques autres opérations sur les ressources de type Article
. Quelqu'un a-t-il des recommandations, des schémas, ou des idées qui permettraient de s'assurer que les changements à ce ArticlesController#show
n'auraient pas besoin d'être répétés dans Posts Controller?
Désolé de revenir à si tard. Cela ressemble à une bonne idée, mais j'ai du mal à l'implémenter. Je ne pense pas que je comprenne comment le PostsController est censé appeler les méthodes dans les préoccupations. Donc j'ai deux pièces: (1) méthode 'show' qui a' authorize! (...) if @ resource.type == 'Article''. (2) 'deal_with_params (...)' qui a le même conditionnel. Pouvez-vous me donner un exemple de 'ArticlesConcern',' PostsController', et peut-être ArticlesController. – Yason