私は、どのユーザーがどのレコードを気に入ったかを記録しているようなモデルを持っています。ユーザーが多くのモデルを好きになれるように、多態的な関連付けを使用しました。
現在、いいねを処理するためにネストされたリソースを使用しています。
POST /items/:item_id/likes
DELETE /items/:item_id/likes/:id
like_id
いくつかの理由で、より良いルートを設計することで の使用をなくしたいと考えています。これは、フラグメント ビューをキャッシュする方が簡単だからです。
item
model は である数少ないモデルの 1 つにすぎないことに注意してくださいlikable
。可能であれば、コードの重複を避けたいと考えています。
like_id
使用しないが、コントローラーでのコードの再利用を可能にするルートとコントローラーを設計する良い方法は何ですか?
可能な実装
私は次のようなルートを考えていました:
POST /items/:item_id/like
DELETE /items/:item_id/like
ネストされたようなリソースは使用しません。代わりにlike
、アイテム コントローラーにアクションを配置します。リクエストが aPOST
か a かを判断し、それDELETE
に応じて動作します。ただし、これは DRY ではありません。