Вы можете создать метод в ApplicationController и вызывать этот метод в своих макетах. Вот как restful_authentication (и многие другие плагины аутентификации) создают и управляют current_user
. Итак, в ApplicationController:
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
А в вашем макете:
<% if current_user %>
<%= link_to 'logout', logout_path %>
<% else %>
<%= link_to 'login', new_user_session_path %>
<%= link_to 'register', new_user_path %>
<% end %>
Это просто надуманный пример, но вы можете увидеть, как он работает. Это не строго переменная, это метод, который кэширует значение при первом вызове и возвращает его.