Upgrading to rails 1.2.3 from 1.1.6 - problem with redirect_

I’m trying to upgrdade from rails 1.1.6 to rails 1.2.3 and I’m running
into a difference
with redirect_to that is causing a DoubleRenderError.

Here’s my code (I’m using a variant of paranoid sql session store):

before_filter :touch_session, :except => [:login, :logout]
after_filter :touch_session

def touch_session

NOTE: I rewrote reset_session in action_controller_cgi_request_hack

    if session[:user_id] == nil
flash[:notice] = "Please log in"
redirect_to(:controller => "login" , :action => "login" )

else
reset_session unless session.host.nil? || session.host ==
request.remote_ip
session.host ||= request.remote_ip
session.user ||= session[:user_id]
end
end

In Rails 1.1.6, this worked fine, in Rails 1.2.3 this throws a
DoubleRenderError.

I tried to fix this as so:

def touch_session

NOTE: I rewrote reset_session in action_controller_cgi_request_hack

    if session[:user_id] == nil
flash[:notice] = "Please log in"
redirect_to(:controller => "login" , :action => "login" )
return false

else
reset_session unless session.host.nil? || session.host ==
request.remote_ip
session.host ||= request.remote_ip
session.user ||= session[:user_id]
return true
end
end

But that had no effect. Any ideas? I’m sure I’m doing something wrong
here but not sure what.
There is no other render or redirect after this and since I’m
returning false from the before_filter I thought processing should
stop.

Have you tried using…

redirect_to(:controller => “login” , :action => “login” ) and return
false

…?

T

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs