Reputation: 577
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
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
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
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