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.
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>