コントローラが3つあります。 2つの帰国特産品(記事、アナウンス)、どちらか一方を返す。レールに冗長アクションロジックを持つ複数コントローラ
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
のリソースにいくつかの他の操作を行います。
ポストコントローラでは、ArticlesController#show
への変更を繰り返す必要がないことを確認するのに役立つ推奨、パターン、またはアイデアがありますか?
申し訳ありません。これはすばらしいアイデアのように見えますが、実装には苦労しています。私はPostsControllerがどのように問題のメソッドを呼び出すことになっているのか分かりません。 私は2つの部分を持っています: (1) 'show'メソッドは 'authorize!(...)if @ resource.type == 'Article''です。 (2) 'deal_with_params(...)'は同じ条件付きです。 あなたは 'ArticlesConcern'、' PostsController'、そしておそらくArticlesControllerの例を教えてくれますか? – Yason