Called id for nil, sesja użytkownika

Witam, w głównym layoucie całej aplikacji, w navbarze mam coś takiego:

#application.html.erb

<% if logged_in? %> <%=h current_user.login %>, witamy! AKCJE UŻYTKOWNIKA <% else %> <% form_for @user_session do |f| %> <fieldset> FORMULARZ LOGOWANIA </fieldset> <% end %> <% end %>
Jak sobie dodaje nowy kontroler to za każdym razem gdy wykonuję jakąś akcję dostaje coś takiego:

Showing app/views/layouts/application.html.erb where line #35 raised: Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
Linia 35 dotyczy tego: <% form_for @user_session do |f| %>
Jeżeli do wywoływanej akcji dopiszę sobie linijkę:

def jakas_akcja @user_session = UserSession.new end
To wtedy nie mam błędu, jednak nie jest to na pewno najlepsze rozwiązanie. Jak można się pozbyć tego błędu? Może coś zmienić z tym navbarem gdzie mam formularz logowania?

No bo musisz ten user_session mieć wszędzie, czyli najlepiej mieć to w ApplicationController, coś takiego tam by się przydało

[code=ruby]
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end

def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end[/code]
Ale poza ta tym robisz coś źle, pooglądaj sobie screencasty od Rayan o Autoryzacji i autentykacji

Pewnie jakiegoś authlogic używasz dodaj do tego cancan i będzie git bez tej ręcznej mordęgi, a przy bardziej skomplikowanych rzeczach na pewno odczujesz pozytywne efekty

Te wszystkie metody w application_controller mam ponieważ korzystałem z tych railscastów. Problem się pojawia w sytuacji gdy chcę mięć ten formularz logowania dostępny w ogólnym layoucie. Stąd moje pytanie jak to jakoś zgrabnie dodać. Próbowałem we wcześniej wspomnianym application_controller wpisać po prostu @user_session = UserSession.new, ale kończy się to błędem

na upartego daj tak:

<% form_for UserSession.new do |f| %>

i będzi ok