我刚从Devise 1.1.5升级到1.4.5用于Rails 3.1(1.1.5似乎导致了bcrypt gem版本问题)。
现在user_signed_in?抛出“错误的参数数量(1对2)”
Stack trace is:
devise (1.4.5) lib/devise/models/authenticatable.rb:89:in `serialize_from_session'
devise (1.4.5) lib/devise/rails/warden_compat.rb:27:in `deserialize'
warden (1.0.5) lib/warden/session_serializer.rb:31:in `fetch'
warden (1.0.5) lib/warden/proxy.rb:182:in `user'
warden (1.0.5) lib/warden/proxy.rb:278:in `_perform_authentication'
warden (1.0.5) lib/warden/proxy.rb:90:in `authenticate'
devise (1.4.5) lib/devise/controllers/helpers.rb:48:in `current_user'
devise (1.4.5) lib/devise/controllers/helpers.rb:44:in `user_signed_in?'
app/controllers/main_controller.rb:24:in `index'
actionpack (3.1.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.1.0) lib/abstract_controller/base.rb:167:in `process_action'
.....
有没有遇到过这个?
答案 0 :(得分:17)
我运行rake tmp:clear
并在session_store.rb
Woodhack::Application.config.session_store :cookie_store, :key => '_NEW_NAME_HERE_session'
答案 1 :(得分:5)
您还可以更改config / initializers / secret_token.rb中的一个字符