Ubuntu Hardy Heron
rails 2.0.2-1ubuntu1
ruby – confusing, i seem to have both 4.1 and 1.8.6.111-2ubuntu1 installed
rake 0.8.1-3
The book I’m using is paper edition Version: 2006-2-16 (which i bought less than a month ago)
In chapter 7, i’ve done all the steps, and I’m getting this:
NameError in StoreController#index
undefined local variable or method `product’ for #
RAILS_ROOT: /home/tiggsy/depot
Application Trace | Framework Trace | Full Trace
app/controllers/store_controller.rb:4:in `index’
vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send’
vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `perform_action_without_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark’
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure’
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’
vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in `perform_action_without_caching’
vendor/rails/actionpack/lib/action_controller/caching.rb:678:in `perform_action’
vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache’
vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache’
vendor/rails/actionpack/lib/action_controller/caching.rb:677:in `perform_action’
vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send’
vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:685:in `process_without_session_management_support’
vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in `process’
vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in `handle_request’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch’
vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch’
vendor/rails/railties/lib/webrick_server.rb:78: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’
vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch’
vendor/rails/railties/lib/commands/servers/webrick.rb:66
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require’
vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require’
vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in’
vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require’
vendor/rails/railties/lib/commands/server.rb:39
script/server:3:in `require’
script/server:3
app/controllers/store_controller.rb:4:in `index’
vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send’
vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `perform_action_without_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark’
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure’
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’
vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in `perform_action_without_caching’
vendor/rails/actionpack/lib/action_controller/caching.rb:678:in `perform_action’
vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache’
vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache’
vendor/rails/actionpack/lib/action_controller/caching.rb:677:in `perform_action’
vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send’
vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters’
vendor/rails/actionpack/lib/action_controller/filters.rb:685:in `process_without_session_management_support’
vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in `process’
vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in `handle_request’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi’
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch’
vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch’
vendor/rails/railties/lib/webrick_server.rb:78: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’
vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch’
vendor/rails/railties/lib/commands/servers/webrick.rb:66
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require’
vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require’
vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in’
vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require’
vendor/rails/railties/lib/commands/server.rb:39
script/server:3:in `require’
script/server:3
Request
Parameters:
None
Show session dump
-
:csrf_id: 5640dac78a579f37ceeb657b2f5cb1a4
flash: !map:ActionController::Flash::FlashHash {}
Response
Headers:
{“cookie”=>[],
“Cache-Control”=>”no-cache”}
I found something on here about rake, so i tried running rake rails:freeze:edge and I got this:
(in /home/tiggsy/depot)
svn: PROPFIND request failed on ’/svn/rails’
svn: PROPFIND of ’/svn/rails’: could not connect to server (http://dev.rubyonrails.org)
rake aborted!
undefined method `[]’ for nil:NilClass
(See full trace by running task with—trace)
It doesn’t solve the problem, which seems to be: undefined local variable or method `product’ for # in app/controllers/store_controller.rb:4:in `index’
The store_controller.rb file matches the one shown in the book:
class StoreController < ApplicationController
def index
@products = product.salable_items
end
end
and I have added
def self.salable_items
find(:all,
:conditions => "date_available <=now()",
:order => "date_available DESC")
end
to the product.rb file below the main validation stuff but above the protected bit.