Как бы я очистил все сессии рельсов?

Свойство align-items для контейнеров flex (элементы с display: flex, примененные к ним), а не элементы гибкости (дети из гибких контейнеров ). Старая спецификация 2009 года не обладает свойством, сопоставимым с align-items; свойство box-align с 2009 года соответствует align-content из стандартной спецификации.

http://jsfiddle.net/mnM5j/2/

#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.

29
задан ardavis 15 June 2011 в 01:00
поделиться

9 ответов

Если вы храните свои сессии в БД, то

rake db:sessions:clear
25
ответ дан Anand Shah 15 June 2011 в 01:00
поделиться

Будь то БД или магазин печенья, используйте rake tmp:sessions:clear

48
ответ дан Yevgeniy 15 June 2011 в 01:00
поделиться

В 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
5
ответ дан bjacobel 15 June 2011 в 01:00
поделиться

Я использую Rails 4, и следующее решение сработало для меня, так как я не хочу запускать вручную rake db:session:clear каждый раз, когда запускаю свое приложение.

Внутри /config/initializer/session_store.rb добавьте следующее

ActiveRecord::SessionStore::Session.delete_all

Это то же самое, что и команда rake, но выполняется на уровне инициализатора.

2
ответ дан T.Ng 15 June 2011 в 01:00
поделиться

Во-первых, 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.

4
ответ дан Omar Qureshi 15 June 2011 в 01:00
поделиться

Лучше всего изменить секретный ключ при развертывании, все куки будут признаны недействительными

технически, вы должны предоставлять его уже через переменную среды.

http://guides.rubyonrails.org/security.html#custom-secrets

для граблей, похоже, что новое -

rails tmp:clear  
2
ответ дан Mathieu J. 15 June 2011 в 01:00
поделиться

В 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
2
ответ дан whodini9 15 June 2011 в 01:00
поделиться

Чтобы представить альтернативное решение: вы можете изменить secret_key_base - если аутентификация выполняется в другом приложении.

0
ответ дан lafeber 15 June 2011 в 01:00
поделиться

По крайней мере, для сессии сохранили в 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

1
ответ дан 28 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: