我们正在ruby 2.0.0上将Rails 3.2引擎升级到Rails 4.2.0。 Gem' activerecord-session_store'按照宝石的说明添加到引擎的gemspec中:
s.add_dependency 'activerecord-session_store'
并在dummy:/ / p>下的initializers / session_store.rb中添加了以下内容
Dummy::Application.config.session_store :active_record_store, :key => '_my_app_session'
然后,我们做了bundle install
。我们跑的时候:
bundle exec rails generate active_record:session_migration
gem的生成器出错:
/activerecord-session_store-0.1.1/lib/generators/active_record/session_migration_generator.rb:16:in `session_table_name': uninitialized co
nstant ActiveRecord::SessionStore (NameError).
我们将gem移动到引擎的Gemfile中并出现同样的错误。为什么SessionStore仍未初始化?感谢。
更新: 在lib下的引擎的engine.rb中,会话表指向:
initializer "Authentify.add_middleware" do |app|
ActiveRecord::SessionStore::Session.table_name = 'authentify_sessions'
app.middleware.use ActiveRecord::SessionStore
end
该设置适用于Rails 3.2。
答案 0 :(得分:2)
如果您没有使用会话的默认表名,请设置:
ActiveRecord::SessionStore::Session.table_name = 'your_old_session_table'
config/application.rb
中的。
答案 1 :(得分:1)
我们所做的是除了.gemspec之外,还将gem'activerecord-session_store'添加到引擎的Gemfile中。错误消失了。