hej,
mam mały kłopot. Mam logowanie sam napisałem w bazie mam kilka użytkowników logowania działa tylko na pierwszy użytkowniu z bazy w innym przypadku mam błąd
undefined method `+' for nil:NilClass
kontroler wygląda tak:
[code]class Admin::AuthController < ApplicationController
def login
@auth = Admin.new(params[:admin])
if params[:admin]
if @auth.valid?
if admin = Admin.authenticate(params[:admin])
session[:id] = admin.id # Remember the user’s id during this session
Admin::addInforationLogin session[:id], remote_ip
redirect_to :action => ‘index’, :controller => ‘home’
else
@auth.errors.add " ",“Password is not correct”
render :action => ‘login’
end
end
end
end
def logqut
reset_session
redirect_to :action => ‘index’, :controller => ‘home’
end
end[/code]
model tak:
[code]class Admin < ActiveRecord::Base
attr_accessible :login, :password, :ip, :count, :email, :active
validates :login, :length => { :in => 4…14 }
validates :password, :length => { :in => 4…14 }
def self.authenticate(client)
find_by_login_and_password(client[:login],client[:password])
end
#add ip and count login
def self.addInforationLogin(client,ip)
@auth_save = Admin.find(client)
@auth_save.ip = ip
@auth_save.count = @auth_save.count+1
@auth_save.save
end
end[/code]
ma ktoś jakis pomysł o co tutaj chodzi.
PS nie chce żadnego GEM do logowania bo tutaj nic więcej co jest nie potrzebuję więc chyba nie ma co się bawić…