未初始化的常量ActiveRecord :: SessionStore with gem'activerecord-session_store'

时间:2015-02-05 23:30:18

标签: ruby-on-rails ruby-on-rails-4 activerecord

我们正在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。

2 个答案:

答案 0 :(得分:2)

如果您没有使用会话的默认表名,请设置:

ActiveRecord::SessionStore::Session.table_name = 'your_old_session_table'
config/application.rb中的

其他configuration

答案 1 :(得分:1)

我们所做的是除了.gemspec之外,还将gem'activerecord-session_store'添加到引擎的Gemfile中。错误消失了。