Form_remote_tag and redirects


#1

I would like to have a login box setup so that if incorrect info is
submitted, the box “shakes” via Effect.Shake.
If the correct information is submitted, I want to redirect to some
other
page.

The only solution I’ve found is the following, which is pretty ugly, as
it
displays the javascript I’m invoking on the page prior to the redirect.
Here is the code:

The Form

<%= form_remote_tag(:update => ‘message’,
:complete =>
evaluate_remote_response,
:url => {:controller => ‘login’,
:action => ‘login’}) %>

The Action

if logged_in
render(:text => “window.location.href =
http://0.0.0.0:3000/admin’;”)
else
render(:layout => false, :action => ‘bad_login’) <-- which is just
a
template with an Effect.Shake

So, is there any other way to do a redirect from an action via a
form_remote_tag than using the window.location hack ?
Crossing my fingers there is a way :slight_smile:
TIA !


#2

redirect_to :controller => “admin” , :action => “index”

adam


#3

Adam, I thought that would work too… but it doesn’t ! Setup a little
test, and you’ll see what I mean.
Doing this window.location thing is all I can get to work. Check this
thread out:
http://thread.gmane.org/gmane.comp.lang.ruby.rails/14202


#4

Yah I never got that to work… so I gave up and took out Ajax call and
made
it a simple call

On 2/1/06, Dylan S. removed_email_address@domain.invalid wrote:

On 1/30/06, Adam D. < removed_email_address@domain.invalid > wrote:

page.
<%= form_remote_tag(:update => ‘message’,
else



Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails

Rgds,
–Siva J.
http://www.varcasa.com/
My First Rails Project. Powered by Typo and soon by RForum too


#5

Awesome… thanks Siva ! That gives me the motivation to just strip out
the
Ajax, as the window.location trick is uuuugly :slight_smile:
Thanks again !


#6

So, if anybody is interested…

Since I’m using an “:update” within the form_remote_tag, the template
being
rendered from the “redirect_to” is simply being displayed on the same
page
as the login form.

So, still not working :slight_smile:


#7

Hey Siva !

It dawned on me that instead of just having the window.location code in
the
template, to surround it with the appropriate

tags.

When the page renders, the script is run, and it redirects fine :slight_smile:
If you use a “url_for” to create the href, it makes it even cleaner.

So, the box shakes on a invalid login, and redirects me to the correct
page
(all clean and pretty like) on a valid login.
Just thought I’d pass that along :slight_smile:

Dylan


#8

How has this worked for you? Can someone post the exact code so that the
redirect stuff doesnt display?


#9

Hey Dylan

That is great!!!

Now u have motivated me to try it :slight_smile:

Rgds,
–Siva J.
http://www.varcasa.com/
My First Rails Project.
Education Through Collabration


#10

wont it still replace the update DIV with a blank partial instead, it
will still be a delay and you will see your screen with that DIV
replaced for a split second before the redirect even though you wont see
the javascript actually show up. No?
Dylan S. wrote:

Hey Siva !

It dawned on me that instead of just having the window.location code in
the
template, to surround it with the appropriate

tags.

When the page renders, the script is run, and it redirects fine :slight_smile:
If you use a “url_for” to create the href, it makes it even cleaner.

So, the box shakes on a invalid login, and redirects me to the correct
page
(all clean and pretty like) on a valid login.
Just thought I’d pass that along :slight_smile:

Dylan


#11

could you be a bit more precise?

no idea what you mean.