Скрытие div, когда пользователь вошел в rails - PullRequest
2 голосов
/ 23 июля 2011

Это код контроллера моей сессии

  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

Мне нужен div id="welcomebuttons", расположенный в layouts / application.html.erb для отображения, когда пользователь не находится в сеансе (вышел из системы), но полностью исчезает и остается скрытым, когда пользователь вошел в систему. Я попытался добавить javascript:hideDiv_welcomebuttons() до if user но, конечно, это не сработало.

Может ли кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 23 июля 2011

в макете приложения

<% if session[:user_id].nil? %>
  <div id="welcomebuttons">
  </div>
<% end %>
0 голосов
/ 23 июля 2011

Я использую Block Helper, как это (просто добавили их к вашему 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 %>
...