Topic: Devise TypeError, that puzzling “can't dup NilClass” error
I am receiving the 'can't dup NilClass' error apparently from Devise and I am really stuck. I am a long time PHP dev, but new to RoR because I inherited a large RoR application running in a production Linux environment. I am trying to get the application running on my local Windows machine, having to make a few changes to the GemFile from production for windows compatibility. So far I've got the gems installed and my rails server started, but I get the error on any routes that appear to call 'authenticate_user' via the 'before_filter' command set up in the application_controller.rb. I can load some routes of the application successfully (like password_reset) that are specified by the 'except' filter shown below. I'll first summarize the environments of both instances of the app and some Gem info:
Production:
Linux Cent 0S
Ruby 1.9.3 r194
rails 3.0.18
devise 1.3.4
warden 1.0.4
orm_adapter 0.0.5
rack 1.2.5
mysql2 0.2.13
dalli 1.1.3
eventmachine 0.12.10
nested_form 0.2.0
unicorn 3.7.0 (with kgio 2.5.0, without thin)
Local:
Windows 7 64bit
Ruby 1.9.3 r374
rails 3.0.18
devise 1.3.4
warden 1.0.6
orm_adapter 0.0.7
rack 1.2.8
mysql 0.2.18
dalli 1.1.2
eventmachine 1.0.0
nested_form 0.3.1
thin 1.5.0 (without unicorn and kgio)
So the application trace seems to identify the problem here in the Devise::SessionsController on the line containing 'respond_with_navigation': TypeError at devise/sessions_controller.rb:10:in `new'
class Devise::SessionsController < ApplicationController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
include Devise::Controllers::InternalHelpers
# GET /resource/sign_in
def new
@messages = Dashboard::Message.page('sign_in').client_messages
resource = build_resource
clean_up_passwords(resource)
respond_with_navigational(resource, stub_options(resource)){ render_with_scope :new }
endand here is the top of application_controller.rb, note the :except=>[:password_reset] route, which I can load since I believe it is skipping the usage of Devise
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!, :except => [:password_reset, :public_rs_list]Unfortunately since I didn't write the app and don't have a better understanding of the application stack I cannot give more context regarding the issue, but I'm hoping someone might point me in the right direction and/or describe some common issues related to this error, FYI I did try the suggestions located here and in similar posts found in stackoverflow and via Google search, but none seemed to make a difference or perhaps I wasn't putting the fixes in the right locations.
Also if there is any more information I need to share, please advise.
Any help on this is greatly appreciated, Thanks