2011-07-23 21 views
2

登录这是我的会话的控制器代码隐藏一个div,而用户在轨

def create 
    user = User.authenticate(params[:login], params[:password]) 
    if user 
     session[:user_id] = user.id 
     redirect_to_target_or_default root_url, :notice => "Logged in successfully." 
    else 
     flash.now[:alert] = "Invalid login or password." 
     render :action => 'new' 
    end 
    end 

我需要位于布局/ application.html.erb显示一个div id="welcomebuttons"当用户不在会议(注销),但完全消失并在用户登录时保持隐藏状态。我尝试将javascript:hideDiv_welcomebuttons()添加到if user,但当然不起作用。

任何人都可以帮忙吗?

回答

1
在应用程序布局

<% if session[:user_id].nil? %> 
    <div id="welcomebuttons"> 
    </div> 
<% end %> 
0

我使用块助手这样的(只是将它们添加到您的application_helper.rb,你是好去):

# application_helper.rb 
def not_logged_in(&block) 
    capture(&block) unless session[:user_id] 
end 

def logged_in(&block) 
    capture(&block) if session[:user_id] 
end 

#application.html.erb 
<div>I'm visible for everyone</div> 

<%= logged_in do %> 
    <div>I'm only visible if you are logged in</div> 
<% end %> 

<%= not_logged_in do %> 
    <div>I'm only visible unless you are logged in</div> 
<% end %>