1

URL を /posts/:id/comments として記述すると、コメントを投稿にマッピングし、対応するコメントのみを次のように見つけることができます:-

@post = Post.find(params[:post_id])
@comments = @post.comments

しかし、コメントがタグや投稿とポリモーフィックに関連付けられており、次のように呼び出すことができるとしましょう:

/posts/:id/comments
/tags/:id/comments

今 Posts#index で、それがタグで呼び出されているのか、リソースを囲む投稿として呼び出されているのかわかりません。レールに自動的に見つけることができるメソッドはありますか? 、Resources Controller プラグインのように、特定の投稿またはタグ リソースを提供し、次のように使用できるenclosing_resourceというメソッドがあります。

@comments = enclosing_resource.comments

params に post_id または tag_id が含まれているかどうかを確認することでこれを行うことができますが、これは正しい方法ではなく、他のモジュールとのポリモーフィックな関連付けも増やすため、見栄えがよくありません。

4

0 に答える 0