Forum: Ruby on Rails Help redirecting to the same page

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
71e53b54803415f87ef1b898baf8f3ca?d=identicon&s=25 John Smith (terry_wolf)
on 2009-02-20 17:26
I have a login controller and a link so I can login my app.
I would like to have something to come back to the page where I clicked
that link. So, when I click the link I go to the login page and after I
would like to return to the page where I clicked the link.
I have uses request_uri in other apps, but I need something different
now and be able to use it all around the web.
91a72b0ad3e43e3ef3a31816667ec694?d=identicon&s=25 bill walton (Guest)
on 2009-02-20 19:44
(Received via mailing list)
Hi John,

On Fri, 2009-02-20 at 17:26 +0100, John Smith wrote:
> I have a login controller and a link so I can login my app.
> I would like to have something to come back to the page where I clicked
> that link. So, when I click the link I go to the login page and after I
> would like to return to the page where I clicked the link.
> I have uses request_uri in other apps, but I need something different
> now and be able to use it all around the web.

Depending on the complexity of your authentication processing, you may
be able to do something as simple as:

redirect_to :back

I'm not sure what you mean by 'need something different now' wrt
request_uri.  An alternative to the above would be to capture the source
of the request in your login controller method and store it in the
session for future use.

There are other alternatives, of course.  Maybe if you say more about
what you mean by 'be able to use it all around the web' you'll get some
more helpful responses.

Best regards,
Bill
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2009-02-20 23:21
(Received via mailing list)
On Feb 20, 2009, at 1:43 PM, bill walton wrote:
>> now and be able to use it all around the web.
> session for future use.
>
> There are other alternatives, of course.  Maybe if you say more about
> what you mean by 'be able to use it all around the web' you'll get
> some
> more helpful responses.
>
> Best regards,
> Bill


Note that if you do use :back, you need to rescue RedirectBackError in
case there is no HTTP_REFERER to go back to.  It might be simpler to
look at what redirect_to does with :back and do that yourself
(exercise for the reader ;-)

begin
   redirect_to :back
rescue RedirectBackError
   redirect_to home_url  # or something appropriate for your app.
end

-Rob

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
71e53b54803415f87ef1b898baf8f3ca?d=identicon&s=25 John Smith (terry_wolf)
on 2009-02-24 09:08
Thanks, but I can not do redirect_to :back, because it redirects to the
login page. I'll need something different. One possibility is to use a
session variables for my controller and method, but the problem is that
sometimes I need also and id, like 'posts/11'. I would like something
more general. I would like to be able to save all the url in a session
variable and then be able to redirect back to it. Is it possible?
6883e5ef03484d4fcef507d7b4f1d243?d=identicon&s=25 Matt Jones (Guest)
on 2009-02-24 23:05
(Received via mailing list)
You'll probably want to adopt an approach similar to restful-
authetication's method:

def store_location
  session[:return_to] = request.request_uri
end

(call this from your action that shows users the login page - see
http://github.com/technoweenie/restful-authenticat...
for details)

--Matt Jones

On Feb 24, 3:08 am, John Smith <rails-mailing-l...@andreas-s.net>
This topic is locked and can not be replied to.