我有3個控制器。兩個返回專門項目(文章,公告),還有一個返回。帶有冗餘動作邏輯的多個控制器在導軌中
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
的文章控制器的show
方法包含將不得不在帖子控制器被複制的邏輯。更具體地講:
def show
deal_with_params(...)
authorize!(...)
render json: @resource
end
後,我通過unique_id
獲取資源,我知道它的類型,可以從那裏分支出來,但我只想要authorize
並做Article
類型資源的一些其他操作。
任何人都有建議,模式或想法,這些建議,模式或想法有助於確保在Posts Controller中不必重複對ArticlesController#show
所做的更改?
對不起,回來這個這麼晚。這看起來很酷,但我很難實現它。我不認爲我理解PostsController如何在關注點中調用方法。所以我有兩個部分: (1)'show'方法具有'授權!(...)if @ resource.type =='Article'。 (2)'deal_with_params(...)'具有相同的條件。 你可以給我一個'ArticlesConcern','PostsController'和ArticlesController的例子。 – Yason