【问题标题】:Sessions with DataMapper don't work due to an ArgumentError由于 ArgumentError,使用 DataMapper 的会话不起作用
【发布时间】:2011-10-20 05:11:32
【问题描述】:

我在 session_store.rb 中有以下内容。我正在运行 Ruby 1.8.7 和 rails 3.1.0.rc4

require 'dm-rails/session_store'
ActionDispatch::Session::DataMapperStore = Rails::DataMapper::SessionStore
Contendable::Application.config.session_store :data_mapper_store

向服务器发出请求时,我得到以下输出:

[2011-10-19 22:07:14] INFO  WEBrick 1.3.1
[2011-10-19 22:07:14] INFO  ruby 1.8.7 (2011-06-30) [i686-darwin10.7.4]
[2011-10-19 22:07:14] INFO  WEBrick::HTTPServer#start: pid=24805 port=3000


Started GET "/" for 127.0.0.1 at Wed Oct 19 22:07:27 -0700 2011
  SQL (21.975ms)  SELECT "id", "session_id", "data", "updated_at" FROM "sessions" WHERE "session_id" = '7ecd5903df96a6d26cbbc69e6d397ce9' ORDER BY "id" LIMIT 1

ArgumentError (wrong number of arguments (4 for 3)):

【问题讨论】:

  • 请在您的代码中发布其余的错误消息及其对应的方法。
  • 我可能会修补这个,我想我知道它是什么。 Rails 3.1 更改了会话存储中的参数。我会尽快回复您并提交拉取请求。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-plugins datamapper ruby-datamapper


【解决方案1】:

固定:

https://github.com/datamapper/dm-rails/pull/28

您现在要么必须使用我的 git fork(在您的 Gemfile 中),要么添加一个猴子补丁来修复它。

【讨论】:

  • 实际上,现在我得到了这个:未初始化的常量 Rails::DataMapper::SessionStore::ENV_SESSION_OPTIONS_KEY
  • 呃。让我们来看看。会尽快回复您。
  • 你现在可以试试,然后回复我好吗? :) (这是分支'bugfix/rails-3.1-sessions',但我猜你发现了)
  • 现在我得到:gems/dm-rails-1.2.0/lib/dm-rails/session_store.rb:30: 未初始化的常量 Rails::Rack::Session (NameError)
  • 对不起(如果你没有猜到,我无法测试它:P)......现在呢?我认为应该这样做。我正在努力确保它不会在 Rails 3.0 项目中中断;)
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 2014-08-24
相关资源
最近更新 更多