posts
とcomments
のブログを想像してみてください。個々のコメントのURLは_posts/741/comments/1220
_の場合があります。
ただし、URLを_posts/741#1220
_、または_posts/741#comment-1230
_にしたいのですが。
redirect_to comment_path(my_comment)
が正しいURLを指すように、これを行う最も邪魔にならない方法は何ですか?
あなたは単に使用することができます
redirect_to post_path(comment.post, :anchor => "comment-#{comment.id}")
アンカーを使用してURLを手動で作成します。そうすれば、コメントへの絶対URLをposts/:post_id/comments/:comment_id
としてルートに含めることができます。たとえば、ヘルパーメソッドを作成することもできます。 application_controller.rb
class ApplicationController
helper :comment_link
def comment_link(comment)
post_path(comment.post, :anchor => "comment-#{comment.id}")
end
end
アンカービルダーを1か所に保管することをお勧めします。
class Comment
...
def anchor
"comment-#{id}#{created_at.to_i}"
end
end
その後
post_path(comment.post, :anchor => comment.anchor)
created_at.to_i
を追加すると、データが少し不明瞭になり、何も害はありません。