Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails routing and URI fragment identifier

When I was developing my RoR skills with some basic tutorials I encountered a problem. What I am trying to achieve is having comments belonging to posts, with no separate index or individual view. This part was easy.

Here comes tough one. I want post_comment_url to return address with fragment identifier: http://example.com/posts/2#comment-4. It would allow me to use redirect_to in it's simplest form, without :anchor parameter (which would be against ruby way of keeping things simple).

How to do that?

like image 379
samuil Avatar asked Jul 22 '09 08:07

samuil


1 Answers

Instead of altering Rails' default behavior, it'd probably be better to wrap up your needs in a helper method:

# in app/controllers/application_controller.rb
class ApplicationController
  helper :comment_link

  def comment_link(comment)
    post_comment_url(comment.post, comment, :anchor => "comment-#{comment.id}")
  end
end

The call to helper will allow you to access that method in your views as well as your controllers.

like image 177
nakajima Avatar answered Sep 28 '22 10:09

nakajima