Мое веб-приложение должно зашифровать данные своего сеанса.Я настраиваю:
config/initializers/encryptor.rb:
require 'openssl'
require 'myapp/encryptor'
MyApp::Encryptor.config[ :random_key ] = OpenSSL::Random.random_bytes( 128 )
Session.delete_all
app/models/session.rb:
require 'attr_encrypted'
class Session < ActiveRecord::Base
attr_accessible :session_id, :data
attr_encryptor :data, :key => proc { MyApp::Encryptor.config[ :random_key ] }, :marshal => true
# Rest of model stuff
end
Все это прекрасно работает и обеспечивает безопасность данных сеанса.Вот в чем проблема: когда я запускаю свои собственные грабли, он загружает инициализатор и очищает все сессии.Не хорошо!
Что можно вставить в мой инициализатор, чтобы он работал ТОЛЬКО для инициализации веб-приложения?Или, что я могу добавить в мой инициализатор, чтобы он НЕ работал для задач rake?
Обновление: ОК, на данный момент я добавил MYAPP_IN_RAKE = true unless defined? MYAPP_IN_RAKE
к моему.файл граблей.И тогда в моем инициализаторе я делаю:
unless defined?( MYAPP_IN_RAKE ) && MYAPP_IN_RAKE
# Web only initialization
end
Кажется, работает.Но я открыт для других предложений.