Свойство align-items
для контейнеров flex (элементы с display: flex
, примененные к ним), а не элементы гибкости (дети из гибких контейнеров ). Старая спецификация 2009 года не обладает свойством, сопоставимым с align-items
; свойство box-align
с 2009 года соответствует align-content
из стандартной спецификации.
#trigger {
display: -webkit-flexbox;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
text-align: center;
height: 10em;
background: yellow;
}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus porta elit vel ante hendrerit facilisis. Curabitur aliquam sollicitudin diam, id posuere elit consectetur nec.
Если вы храните свои сессии в БД, то
rake db:sessions:clear
Будь то БД или магазин печенья, используйте rake tmp:sessions:clear
В Rails 4 принятый ответ (rake db:sessions:clear
) больше не работает, потому что ActiveRecord :: SessionStore был извлечен в гем active_record-session_store
. (См. здесь для дальнейшего объяснения)
Теперь вы можете либо установить гем active_record-session_store
и использовать rake db:sessions:clear
, как в Rails 3, либо создать пользовательскую задачу Rake, которая выглядит так:
namespace :db do
namespace :sessions do
desc "Clear ActiveRecord sessions"
task :clear => :environment do
sql = 'TRUNCATE sessions;'
ActiveRecord::Base.connection.execute(sql)
end
end
end
Я использую Rails 4, и следующее решение сработало для меня, так как я не хочу запускать вручную rake db:session:clear
каждый раз, когда запускаю свое приложение.
Внутри /config/initializer/session_store.rb добавьте следующее
ActiveRecord::SessionStore::Session.delete_all
Это то же самое, что и команда rake, но выполняется на уровне инициализатора.
Во-первых, nil не == false, однако, nil оценивается как false. Попробуйте сами, если не верите:
irb(main):001:0> nil == false
=> false
irb(main):002:0> nil == nil
=> true
Какой из вариантов означает:
irb(main):003:0> false.nil?
=> false
Вы можете очистить свой код следующим образом, так как кажется, что @firsttime никогда не устанавливается к истине где угодно.
unless session[:visited]
session[:visited] = true
initglobals
end
Наконец, rake tmp: session: clear будет работать только в том случае, если вы используете ActiveRecordStore, если вы используете CookieStore (который используется по умолчанию). Тогда вам нужно будет очистить ваши куки или использовать reset_session.
Лучше всего изменить секретный ключ при развертывании, все куки будут признаны недействительными
технически, вы должны предоставлять его уже через переменную среды.
http://guides.rubyonrails.org/security.html#custom-secrets
для граблей, похоже, что новое -
rails tmp:clear
В Rails 5, если используется ActiveRecord:
ActiveRecord::SessionStore::Session.delete_all
или более детально:
# For example schedule this once a day`
ActiveRecord::SessionStore::Session.where(["updated_at < ?", 2.weeks.ago]).delete_all
Чтобы представить альтернативное решение: вы можете изменить secret_key_base
- если аутентификация выполняется в другом приложении.
По крайней мере, для сессии сохранили в cookie , Вы могли просто изменить свой ключ хранилища сессии:
initializers/session_store.rb:
Rails.application.config.session_store :cookie_store, key: '_my_new_session_key'
Согласно API направляющих: ... изменение Вашего secret_key_base будет делать недействительным все существующие сессии
https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/Session/CookieStore.html