Problem z sytemem logowania

Witam wszystkich
Jestem od nie dawna w społeczności Rails i dopiero raczkuje w tym języku.
Mam problem z systemem logowania, pojawia sie błąd “You are being redirected.” Przedstawiam części kodu:

Model:

require ‘digest/sha2’
class User < ActiveRecord::Base
validates_uniqueness_of :login

def selt.authenticate(login,password)
user=User.find(:first, :conditions => [‘login=?’,login])
if user.blank?
Digest::SHA256.hexdigest(password+user.haslo)!=user.hash
raise"łąd loginu lub hasła"
end
user
end
end

Controler:

class CzlonkowiesController < ApplicationController

before_filter:check_authentication, :except =>[:logowanie]

def check_authentication
unless session[:user]
session[:intended_action] = action_name
session[:intended_controller] = controller_name
redirect_to :action => “logowanie”
end
end

def logowanie
sesion[:user]= User.authenticate(params[:login], params[:password]).id
redirect_to :action => session[:intended_action],
:controller => session[:intended_controller]

end

def wyloguj
sesion[:user]= nil
end

inne akcje kontrolera

end

Widok:

system logowania

<% form_for:action =>"logowanie" do |f| %> <%= f.error_messages %>

<%= f.label :login %>
<%= f.text_field :login %>

<%= f.label :haslo %>
<%= f.text_field :haslo %>

<%= f.submit 'zaloguj' %>

<% end %>

Już robie to któryś raz z kolei i nie wychodzi. Mam spore wątpliwości, co do tego widoku ale będę wdzięczna za pomoc.
Versja Rails - 2.3.5

p/s przepraszam jeśli powtarzam wątek.

Z góry dziękuje za odpowiedzi.

Tak na szybko to zamiast if user.blank?
powinno być if user

Faktycznie w modelu był błąd(brakowało ||). Ale jego poprawienie nic nie dało:
Model:
require ‘digest/sha2’
class User < ActiveRecord::Base
validates_uniqueness_of :login

def selt.authenticate(login,password)
user=User.find(:first, :conditions => [‘login=?’,login])
if user.blank? || Digest::SHA256.hexdigest(password+user.haslo)!= user.hash
raise"Błąd loginu lub hasła"
end
user
end
end

A to są logi błedu:
Processing CzlonkowiesController#index (for 127.0.0.1 at 2011-01-02 09:57:33) [GET]
Redirected to http://localhost:3000/czlonkowies/logowanie
Filter chain halted as [:check_authentication] rendered_or_redirected.
Completed in 1091ms (DB: 10) | 302 Found [http://localhost/czlonkowies]
e[4;36;1mSQL (0.0ms)e[0m e[0;1mSET SQL_AUTO_IS_NULL=0e[0m

Zamiast łapać osobno nazwe akcji i kontrolera lepiej zrób tak jak sugeruje AUTHLOGIC (gem do autentykacji). Zeby zapamietac parametry requestu.

session[:return_to] = request.request_uri

Coś jest nie tak z metodą logowanie bo nawet gdy akcja modelu zwróci nil to redirectuje do zapamiętanej w sesji scieżki.
już lepiej tak def logowanie if user = User.authenticate(params[:login], params[:password]) session[:user] = user.id redirect_to(session[:return_to] || root_path) else render :action => '...' # tutaj widok z formularzem logowania end end
Popatrz jak robi to authlogic.