Rack-Flash проблемы синатры - PullRequest
       7

Rack-Flash проблемы синатры

0 голосов
/ 20 сентября 2011

У меня есть небольшое приложение sinatra, которое я использую в стойке для предупреждения «не вошел в систему». Настройка довольно проста: проверка сеанса и возвращение сообщения об ошибке не найдено.

Я нахожу все это довольно темпераментным, хотя. вспышки показывают на моем локальном сервере, но не на моем пульте. Я просматривал код и примеры много раз и, похоже, не могу найти ошибку. Маршрут и шаблон указаны ниже:

get '/item/new' do
  if session?
    erb :new_item
  else
    flash[:error] = 'not logged in'
    redirect '/'
  end
end

и просмотр

<% if flash[:error] %>
  <div id="flash-message">
    <%= flash[:error] %>
  </div>
<% end %>

У меня есть стойка-флэш и сеансы, настроенные так:

use Rack::Flash, :sweep => true
use Rack::Session::Cookie

любые идеи высоко ценится.

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

Вы пробовали использовать sinatra-flash ? Я действительно не пробовал стоечную вспышку, но sinatra-flash всегда работал для меня.

1 голос
/ 12 ноября 2012

Поскольку <FlashHash @values={} @cache={}> из rack-flash - это, по сути, хэш, вы можете просто использовать #has?, чтобы проверить наличие ключа / сообщения.Изучите пример:

  <% if flash.has?(:notice) %>
    <div class="alert alert-block">
      <%= flash[:notice] %> 
    </div>
  <% end %>

Я знаю, что это немного поздно, но я надеюсь, что это поможет.

1 голос
/ 24 ноября 2011

При извлечении значения из флэш-памяти оно стирается.Итак, когда вы делаете «if flash [: error]», вы, возможно, получаете его?Использование имеет?чтобы проверить, что-то там есть.

...