Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Internal Server Error on render :text using procs and ActiveRecord

#3211

When I try to access any method of any ActiveRecord object on a render :text with procs, WEBrick and Mongrel fails with a server error and the message "You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.include?"

To reproduce the error, try:
$ rails stream $ cd stream $ script/generate scaffold person name:string age:integer $ rake db:migrate

Now, create a person, and substitute the contents of the index method on the controller to:
def index

@people = Person.all

respond_to do |format|
  format.html {
    render :text => Proc.new { |req, resp|
      @people.each do |person|
        resp.write "#{person.name}\n"
      end
    }
  }
  format.xml  { render :xml => @people }
end

end

And try to point your browser to http://localhost:3000/people. Below, is the backtrace I get (in console):
The error occurred while evaluating nil.include?

    /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:142:in `create_time_zone_conversion_attribute?'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:75:in `define_attribute_methods'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:71:in `each'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:71:in `define_attribute_methods'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:242:in `method_missing'
    /tmp/stream/app/controllers/people_controller.rb:11:in `index'
    /tmp/stream/app/controllers/people_controller.rb:10:in `each'
    /tmp/stream/app/controllers/people_controller.rb:10:in `index'
    /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/response.rb:153:in `call'
    /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/response.rb:153:in `each'
    /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:58:in `service'
    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
    /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in `run'
    /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111
    /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    script/server:3

Reported by Mauricio Eduardo Szabo · September 15th, 2009 @ 08:32 PM

State: resolved
Milestone: none
Assigned to: nobody
Importance: none

Activity

  1. Mauricio Eduardo Szabo
    Mauricio Eduardo Szabo

    Nevermind, I was using rails 2.3.2. I checked today on rails 2.3.4, and it's working.

    September 24th, 2009 @ 08:38 PM

  2. CancelProfileIsBroken
    CancelProfileIsBroken
    • State changed from new to resolved

    September 25th, 2009 @ 12:07 PM