Forum: Ruby on Rails Redirect whole page from AJAX action that updates a div

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.
Ingo W. (Guest)
on 2006-05-10 23:15
Hi,

I am calling an action via AJAX to update a div. The action needs to
redirect the page in under certain circumstances. However, if I just use
"redirect_to" in the action then of course what happens is that the page
I want to redirect to replaces only the div, not the entire page, and I
get messy nested layouts.

Is there a way around this? Can I redirect the entire document from an
action that is called via AJAX to update a div?

Thanks for any help!
Ingo W.
Matt B. (Guest)
on 2006-05-10 23:45
I'm assuming you're using link_to_remote in which case you need to pass
into that method a callback javascript function.  Take a look at
http://api.rubyonrails.org/classes/ActionView/Help....
You probably need to do something like the following:

link_to_remote 'My Link,
    :url => { :action => "action" },
    404 => "alert('Not found...? Wrong URL...?')",
    :failure => "window.location = request"

then when a redirect (302) is sent the failure handler will be hit.  You
probably want more error and bounds checking though.

I'm pretty sure this is clost to right and would write more but I need
to run.

-Matt Bauer
Bryan D. (Guest)
on 2006-05-11 02:10
You can also conditionally render an .rhtml file that contains a script
block something like:

<script>
  document.location.href = "...";
</script>

PrototypeHelper will by default try to evaluate scripts in returned
blocks.
This topic is locked and can not be replied to.