peeyush singla
peeyush singla

Reputation: 577

How to get the current route in rails

I am building some rails sample application in which I am having two models User and Projects. Association between both is user has_many projects. Now the question is I am willing to provide some drop down for user's projects on top and if some one click on that one it will take that to project show page. But if user is at edit page of one project and select other project from dropdown I want him to reach edit page of new selected project same case for show page any idea. The solution I am looking for is e.g:- we can find current controller using params[:controller], find current action using params[:action] how can I find current route. Thanx in advance

If someone want to see what is my code:- here is the link for github:- 'https://github.com/peeyushsingla/session_test.git/ Here I am using simple link but actually I will provide some single drop down that will be displayed that will work for all the edit, show, new every action

Upvotes: 13

Views: 28382

Answers (3)

Abel O'Ryan
Abel O'Ryan

Reputation: 4242

For Rails 4 or newest

URL example: http://localhost:3000/allreferred?&referred_name=maria

request.path -> "/allreferred"

request.base_url -> "http://localhost:3000"

request.fullpath -> "/allreferred?&referred_name=maria"

request.original_url -> "http://localhost:3000/allreferred?&referred_name=maria"

Upvotes: 27

miguel savignano
miguel savignano

Reputation: 1159

You can use url_for

def current_path(params={})
  url_for(request.params.merge(params))
end

URL example http://localhost:3000/posts

current_path -> /posts

current_path(order: asc) -> /posts/?order=asc

Upvotes: 3

davegson
davegson

Reputation: 8331

To retrieve the URLs:

# Current URL:
request.original_url

# Current relative URL:
request.request_uri

Additionally, you can check with the current_page method whether you are in a certain route.

current_page?(my_path)
# => true / false

For Rails 4 use:

# Current URL:
request.original_url

# Current relative URL:
request.fullpath

Upvotes: 25

Related Questions