Trying to add authlogic in a simple project but get the error; Showing app/views/layouts/application.html.erb where line #33 raised: undefined method `underscore'' for nil:NilClass Extracted source (around line #33): 30: <div id="mainleft"> 31: <ul class="menu"> 32: <li><%= nav_link "Home", "site", "index" %></li> 33: <% if current_user %> 34: <li>The site</li> 35: <% else %> 36: <li><%= nav_link "Login", "authentications", "login" %></li> class ApplicationController < ActionController::Base protect_from_forgery filter_parameter_logging :password, :password_confirmation helper_method :current_user private def current_user_session return @current_user_session if defined?(@current_user_session) @current_user_session = Authentication.find end def current_user return @current_user if defined?(@current_user) @current_user = current_user_session && current_user_session.user end authentication model class Authentication < Authlogic::Session::Base authenticate_with User end user model class User < ActiveRecord::Base acts_as_authentic do |c| c.session_class = Authentication c.login_field = :login c.ignore_blank_passwords = false end end routes in routes.rb map.root :controller => "site", :action => "index" map.resource :authentications map.resources :users map.login "login", :controller =>"authentications", :action => "login" map.logout "logout", :controller =>"authentications", :action => "destroy" The problem is in ApplicationController @current_user_session = Authentication.find Authentication is not active? I have config.gem "authlogic" in environment.rb file. Any ideas? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Sat, Oct 30, 2010 at 05:49, Philrup <phil-8098yiAR632akBO8gow8eQ@public.gmane.org> wrote:> map.login "login", :controller =>"authentications", :action => > "login"Shouldn''t this be: map.login "login", :controller =>"authentications", :action => "new" ? (Note that I changed the action to "new") -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Unfortunately the problem does not appear to be a routes problem but a ‘not initialised’ authlogic problem. By changing the App.Controller methods I have now moved the problem to the create procedure after logging on. I managed to create a user from the console and Authlogic filled in all the ‘special’ fields. But logging on and calling the create session (call Authentication) causes the same error undefined method `underscore'' for nil:NilClass which occurs when calling @authentication.save. def create @authentication = Authentication.new(params[:authentication]) if @authentication.save flash[:notice] = "Login successful!" redirect_to root_url else render :action => :new end end My App.Controller now has the session/user checking methods and cause no problems. (so far) private def current_user return @current_user if defined?(@current_user) @current_user = current_user_session && current_user_session.user end def current_user_session return @current_user_session if defined?(@current_user_session) if defined?(Authentication.Find) then @current_user_session = Authentication.find else @current_user_session=nil end end I am using rails 2.3.8 and Authlogic 2.1.6, and I like to try and keep to one word descriptions of models and controls so Authentication instead of UserSession. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
fyi for people who find this thread: I had the same issue with undefined method `underscore'', and my only solution was recreating my app from scratch, using this authlogic/rails3 template: https://github.com/davidchua/authlogic-rails3-template -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.