3

これは私のセッションのコントローラーコードです

  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

ユーザーがセッションに参加していない (ログアウトしている) ときに表示するには、id="welcomebuttons"layouts/application.html.erb にある div が必要ですが、ユーザーがログインすると完全に消えて非表示のままになります。動作しません。javascript:hideDiv_welcomebuttons()if user

誰でも助けてもらえますか?

4

3 に答える 3

2

アプリケーションレイアウトで

<% if session[:user_id].nil? %>
  <div id="welcomebuttons">
  </div>
<% end %>
于 2011-07-23T06:12:34.010 に答える
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 %>
于 2011-07-23T08:19:47.593 に答える