named route new_session not working

Anyone have any idea why a named route would NOT work? I did rake routes to make sure it was there and it was but for some reason new_session doesn't work.

What do you mean, didn't work? If you are looking for a helper method called new_session there isn't one, the named route will generate two helper methods, in this case new_session_path and new_session_url

But maybe you have some other problem. In any case just "doesn't work" doesn't help us much.

I changed 'new_session' in authentication_system.rb to say 'new_session_path' and it kind of works...it's not using my routes though. Is this a bug?

strange...

What do you mean "kind of works"?

What do you mean "it's not using my routes"?

You gotta tell us more, son!

sorry for the ambiguity. I will work on being more descriptive. :slight_smile:

In the method access_denied in the file authenticated_system.rb from restful athentication, it generates this:

    def access_denied       respond_to do |format|         format.html do           store_location           redirect_to new_session # <---- NOTICE         end         format.xml do           request_http_basic_authentication 'Web Password'         end       end     end

Everytime I hit a 'login_required' area of the site I get this error:

undefined local variable or method `new_session' for #<Admin::CategoriesController:0x18e93dc>

I changed the new_session to new_session_url and it works fine but it redirects it to http://localhost:3000/sessions/new instead of http://localhost:3000/login.

my routes look like this:

  map.with_options :controller => "sessions" do |page|     page.login "/login", :action => "new"     page.logout '/logout',:action => 'destroy'   end

rake routes:

new_session GET /session/new {:action=>"new", :controller=>"sessions"}

Seems like it should work. Am I missing something?

I changed "new_session" to "login_path" in the following two instances.

In authenticated_system.rb

<pre><code>     def access_denied       respond_to do |format|         format.html do           store_location           redirect_to login_path         end         format.xml do           request_http_basic_authentication 'Web Password'         end       end     end </code></pre>

In sessions_controller.rb

<pre><code>   def create     self.current_user = User.authenticate(params[:login], params[:password])     if logged_in?       if params[:remember_me] == "1"         self.current_user.remember_me         cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at }       end       redirect_back_or_default('/')       flash[:notice] = "Logged in successfully"     else       redirect_to login_path     end   end </code></pre>