Я использую стандартное active_record_store в своем приложении. В environment.rb
у меня есть:
config.action_controller.session_store = :active_record_store
И моя таблица sessions
была создана с rake db:sessions:create
:
create_table :sessions do |t|
t.string :session_id, :null => false
t.text :data
t.timestamps
end
add_index :sessions, :session_id
add_index :sessions, :updated_at
Однако столбец updated_at
не обновляется при каждом запросе. Он обновляется после создания сеанса (до того же значения, что и created_at
, как и ожидалось), но не для любых последующих запросов.
Как ни странно, если я объявлю следующий явный вызов в environment.rb
, тогда поле будет обновляться при каждом запросе:
class CGI::Session::ActiveRecordStore::Session
def before_save
self.updated_at = Time.now
end
end
Может кто-нибудь объяснить, почему это не работает по умолчанию?
Я использую Rails 2.1.0 - и нет, я не могу обновить Rails в данный момент! :)