NoMethodError
Start with a new project
ruby -rubygems /home/rubys/git/rails/bin/rails testapp
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/views/layouts/application.html.erb
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/models
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/test.rb
create config/environments/production.rb
create config/environments/development.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/inflections.rb
create config/initializers/session_store.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create doc
create doc/README_FOR_APP
create lib
create lib/tasks
create lib/tasks/.gitkeep
create log
create log/server.log
create log/production.log
create log/development.log
create log/test.log
create public
create public/404.html
create public/index.html
create public/favicon.ico
create public/422.html
create public/500.html
create public/robots.txt
create public/images
create public/images/rails.png
create public/stylesheets
create public/stylesheets/.gitkeep
create public/javascripts
create public/javascripts/prototype.js
create public/javascripts/controls.js
create public/javascripts/rails.js
create public/javascripts/application.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create script
create script/rails
create test
create test/performance/browsing_test.rb
create test/test_helper.rb
create test/fixtures
create test/unit
create test/functional
create test/integration
create tmp
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
bundle install
Using rake (0.8.7) from bundler gems
Using abstract (1.0.0) from bundler gems
Using builder (2.1.2) from bundler gems
Using i18n (0.4.0.beta1) from bundler gems
Using memcache-client (1.8.3) from bundler gems
Using tzinfo (0.3.20) from bundler gems
Using activesupport (3.0.0.beta3) from source code at /home/rubys/git/rails
Using activemodel (3.0.0.beta3) from source code at /home/rubys/git/rails
Using erubis (2.6.5) from bundler gems
Using rack (1.1.0) from bundler gems
Using rack-mount (0.6.3) from bundler gems
Using rack-test (0.5.3) from bundler gems
Using actionpack (3.0.0.beta3) from source code at /home/rubys/git/rails
Using mime-types (1.16) from bundler gems
Using polyglot (0.3.1) from bundler gems
Using treetop (1.4.5) from bundler gems
Using mail (2.2.0) from bundler gems
Using text-hyphen (1.0.0) from bundler gems
Using text-format (1.0.0) from bundler gems
Using actionmailer (3.0.0.beta3) from source code at /home/rubys/git/rails
Using arel (0.3.3) from bundler gems
Using activerecord (3.0.0.beta3) from source code at /home/rubys/git/rails
Using activeresource (3.0.0.beta3) from source code at /home/rubys/git/rails
Using bundler (0.9.25) from bundler gems
Using thor (0.13.6) from bundler gems
Using railties (3.0.0.beta3) from source code at /home/rubys/git/rails
Using rails (3.0.0.beta3) from source code at /home/rubys/git/rails
Using sqlite3-ruby (1.2.5) from bundler gems Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
About as simple of a scaffold as you can get
rails generate scaffold product title:string
invoke active_record
create db/migrate/20100505102717_create_products.rb
create app/models/product.rb
invoke test_unit
create test/unit/product_test.rb
create test/fixtures/products.yml
route resources :products
invoke scaffold_controller
create app/controllers/products_controller.rb
invoke erb
create app/views/products
create app/views/products/index.html.erb
create app/views/products/edit.html.erb
create app/views/products/show.html.erb
create app/views/products/new.html.erb
create app/views/products/_form.html.erb
invoke test_unit
create test/functional/products_controller_test.rb
invoke helper
create app/helpers/products_helper.rb
invoke test_unit
create test/unit/helpers/products_helper_test.rb
invoke stylesheets
create public/stylesheets/scaffold.css
rake db:migrate
mv 20100505102717_create_products.rb 20100301000001_create_products.rb
(in /home/rubys/tmp/work/testapp)
== CreateProducts: migrating =================================================
-- create_table(:products)
-> 0.0011s
== CreateProducts: migrated (0.0012s) ========================================
Start the server.
Insert an error into the index
edit app/views/products/index.html.erb
<h1>Listing products</h1>
<table>
<tr>
<th>Title</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @products.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_product_path(product) %></td>
<td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Product', new_product_path %>
<%= @foo.bar %>
Verify the stack traceback
get /products
NoMethodError in
Products#index
Showing /home/rubys/tmp/work/testapp/app/views/products/index.html.erb where line #24 raised:
undefined method `bar' for nil:NilClass
Extracted source (around line #24 ):
21: <br />
22:
23: <%= link_to 'New Product', new_product_path %>
24: <%= @foo.bar %>
Rails.root: /home/rubys/tmp/work/testapp
Application Trace |
Framework Trace |
Full Trace
app/views/products/index.html.erb:24
app/controllers/products_controller.rb:7:in `index'
/home/rubys/git/rails/activesupport/lib/active_support/whiny_nil.rb:48:in `method_missing'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:46:in `send'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:46:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:44:in `render'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:58:in `_render_template'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:55:in `_render_template'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:25:in `render'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:113:in `_render_template'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:107:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/renderers.rb:47:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:100:in `render_to_string'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:91:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:17:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:77:in `cleanup_view_runtime'
/home/rubys/git/rails/activerecord/lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:38:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:258
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:189:in `call'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:189:in `respond_to'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:144:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:11:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:28:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:18:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:433:in `_run__1118320962__process_action__199225275__callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:404:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:404:in `_run_process_action_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rescue.rb:8:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:113:in `process'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:39:in `process'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:84:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:124
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:26:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:26:in `call'
rack-mount (0.6.3) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:89:in `recognize'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:66:in `optimized_each'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:88:in `recognize'
rack-mount (0.6.3) lib/rack/mount/route_set.rb:139:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:454:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.1.0) lib/rack/methodoverride.rb:24:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/flash.rb:167:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb:107:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/cookies.rb:202:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:31:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:35:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:11:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:30:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:365:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:46:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `_run_call_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:44:in `call'
rack (1.1.0) lib/rack/sendfile.rb:105:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:48:in `call'
/home/rubys/git/rails/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.1.0) lib/rack/runtime.rb:17:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.1.0) lib/rack/lock.rb:11:in `call'
rack (1.1.0) lib/rack/lock.rb:11:in `synchronize'
rack (1.1.0) lib/rack/lock.rb:11:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/static.rb:30:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:132:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:81:in `send'
/home/rubys/git/rails/railties/lib/rails/application.rb:81:in `method_missing'
/home/rubys/git/rails/railties/lib/rails/rack/log_tailer.rb:15:in `call'
rack (1.1.0) lib/rack/content_length.rb:13:in `call'
rack (1.1.0) lib/rack/handler/webrick.rb:48:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:95:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `each'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:23:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:82:in `start'
rack (1.1.0) lib/rack/handler/webrick.rb:14:in `run'
rack (1.1.0) lib/rack/server.rb:155:in `start'
/home/rubys/git/rails/railties/lib/rails/commands/server.rb:62:in `start'
/home/rubys/git/rails/railties/lib/rails/commands.rb:30
/home/rubys/git/rails/railties/lib/rails/commands.rb:27:in `tap'
/home/rubys/git/rails/railties/lib/rails/commands.rb:27
script/rails:6:in `require'
script/rails:6
/home/rubys/git/rails/activesupport/lib/active_support/whiny_nil.rb:48:in `method_missing'
app/views/products/index.html.erb:24
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:46:in `send'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:46:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:44:in `render'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:58:in `_render_template'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:55:in `_render_template'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:25:in `render'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:113:in `_render_template'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:107:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/renderers.rb:47:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:100:in `render_to_string'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:91:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:17:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:77:in `cleanup_view_runtime'
/home/rubys/git/rails/activerecord/lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:38:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:258
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:189:in `call'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/mime_responds.rb:189:in `respond_to'
app/controllers/products_controller.rb:7:in `index'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:144:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:11:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `__send__'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:48:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:28:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:18:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:433:in `_run__1118320962__process_action__199225275__callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:404:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:404:in `_run_process_action_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rescue.rb:8:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:113:in `process'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:39:in `process'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:84:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:124
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:26:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:26:in `call'
rack-mount (0.6.3) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:89:in `recognize'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:66:in `optimized_each'
rack-mount (0.6.3) lib/rack/mount/code_generation.rb:88:in `recognize'
rack-mount (0.6.3) lib/rack/mount/route_set.rb:139:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:454:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.1.0) lib/rack/methodoverride.rb:24:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/flash.rb:167:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb:107:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/cookies.rb:202:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:31:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:35:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:11:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:30:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:365:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:46:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `_run_call_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:88:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:44:in `call'
rack (1.1.0) lib/rack/sendfile.rb:105:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:48:in `call'
/home/rubys/git/rails/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.1.0) lib/rack/runtime.rb:17:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.1.0) lib/rack/lock.rb:11:in `call'
rack (1.1.0) lib/rack/lock.rb:11:in `synchronize'
rack (1.1.0) lib/rack/lock.rb:11:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/static.rb:30:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:132:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:81:in `send'
/home/rubys/git/rails/railties/lib/rails/application.rb:81:in `method_missing'
/home/rubys/git/rails/railties/lib/rails/rack/log_tailer.rb:15:in `call'
rack (1.1.0) lib/rack/content_length.rb:13:in `call'
rack (1.1.0) lib/rack/handler/webrick.rb:48:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:95:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `each'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:23:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/webrick/server.rb:82:in `start'
rack (1.1.0) lib/rack/handler/webrick.rb:14:in `run'
rack (1.1.0) lib/rack/server.rb:155:in `start'
/home/rubys/git/rails/railties/lib/rails/commands/server.rb:62:in `start'
/home/rubys/git/rails/railties/lib/rails/commands.rb:30
/home/rubys/git/rails/railties/lib/rails/commands.rb:27:in `tap'
/home/rubys/git/rails/railties/lib/rails/commands.rb:27
script/rails:6:in `require'
script/rails:6
Request
Parameters :
None
Show session dump
session_id: "c3b7905ef831122d11c0c55ca9f3a0c9"
Show env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html"
HTTP_HOST: "localhost:3000"
HTTP_VERSION: "HTTP/1.1"
PATH_INFO: "/products"
QUERY_STRING: ""
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "localhost"
REQUEST_METHOD: "GET"
REQUEST_PATH: "/"
REQUEST_URI: "http://localhost:3000/products"
SCRIPT_NAME: ""
SERVER_NAME: "localhost"
SERVER_PORT: "3000"
SERVER_PROTOCOL: "HTTP/1.1"
SERVER_SOFTWARE: "WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)"
action_controller.instance: #<ProductsController:0x7ff9306437d8 @_action_name="index", @products=[], @_env={"action_dispatch.request.formats"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"action"=>"index", "controller"=>"products"}, "rack.session"=>{"session_id"=>"c3b7905ef831122d11c0c55ca9f3a0c9"}, "HTTP_HOST"=>"localhost:3000", "HTTP_ACCEPT"=>"text/html", "SERVER_NAME"=>"localhost", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7ff9316a7bb0 @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @env={...}, @check_ip_spoofing=true>, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.errors"=>#<IO:0x7ff935905ac0>, "SERVER_PROTOCOL"=>"HTTP/1.1", "action_dispatch.request.symbolized_path_parameters"=>{:controller=>"products", :action=>"index"}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.secret_token"=>"4ed7d5860edadfce5bd19c1b05794b52572c6e8df4f3bd6f1b0ab3c262ebbca107bc8237ba659b0dbf3d2b16fa970ea3b8cdf40b109b1f7c9b7363aeb5686352", "rack.version"=>[1, 1], "rack.run_once"=>false, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)", "REMOTE_ADDR"=>"127.0.0.1", "PATH_INFO"=>"/products", "action_dispatch.request.path_parameters"=>{:controller=>"products", :action=>"index"}, "SCRIPT_NAME"=>"", "action_dispatch.parameter_filter"=>[:password], "HTTP_VERSION"=>"HTTP/1.1", "rack.multithread"=>false, "action_dispatch.request.request_parameters"=>{}, "rack.multiprocess"=>false, "REQUEST_URI"=>"http://localhost:3000/products", "rack.request.query_hash"=>{}, "SERVER_PORT"=>"3000", "action_controller.instance"=>#<ProductsController:0x7ff9306437d8 ...>, "rack.session.options"=>{:key=>"_session_id", :domain=>nil, :httponly=>true, :id=>"c3b7905ef831122d11c0c55ca9f3a0c9", :path=>"/", :expire_after=>nil}, "REQUEST_METHOD"=>"GET", "rack.request.query_string"=>"", "action_dispatch.request.content_type"=>nil, "rack.input"=>#<StringIO:0x7ff9316a89c0>, "QUERY_STRING"=>"", "GATEWAY_INTERFACE"=>"CGI/1.1"}, @config=#<OrderedHash {}>, @_status=200, @_response_body=nil, @lookup_context=#<ActionView::LookupContext:0x7ff930625918 @frozen_formats=true, @details={:handlers=>[:rjs, :erb, :rhtml, :builder, :rxml], :formats=>[:html], :locale=>[:en, :en]}, @view_paths=[#<ActionView::FileSystemResolver:0x7ff9316f3b28 @path=#<Pathname:/home/rubys/tmp/work/testapp/app/views>, @cached={}, @caching=false>], @handlers_regexp=/\.(?:rjs|erb|rhtml|builder|rxml)$/, @details_key=#<ActionView::LookupContext::DetailsKey:0x7ff930541470 @hash=70354117200440>, @skip_default_locale=false, @default_handlers=[:rjs, :erb, :rhtml, :builder, :rxml]>, @action_has_layout=true, @_request=#<ActionDispatch::Request:0x7ff930643710 @filtered_parameters={"action"=>"index", "controller"=>"products"}, @env={"action_dispatch.request.formats"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"action"=>"index", "controller"=>"products"}, "rack.session"=>{"session_id"=>"c3b7905ef831122d11c0c55ca9f3a0c9"}, "HTTP_HOST"=>"localhost:3000", "HTTP_ACCEPT"=>"text/html", "SERVER_NAME"=>"localhost", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7ff9316a7bb0 @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @env={...}, @check_ip_spoofing=true>, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.errors"=>#<IO:0x7ff935905ac0>, "SERVER_PROTOCOL"=>"HTTP/1.1", "action_dispatch.request.symbolized_path_parameters"=>{:controller=>"products", :action=>"index"}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.secret_token"=>"4ed7d5860edadfce5bd19c1b05794b52572c6e8df4f3bd6f1b0ab3c262ebbca107bc8237ba659b0dbf3d2b16fa970ea3b8cdf40b109b1f7c9b7363aeb5686352", "rack.version"=>[1, 1], "rack.run_once"=>false, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)", "REMOTE_ADDR"=>"127.0.0.1", "PATH_INFO"=>"/products", "action_dispatch.request.path_parameters"=>{:controller=>"products", :action=>"index"}, "SCRIPT_NAME"=>"", "action_dispatch.parameter_filter"=>[:password], "HTTP_VERSION"=>"HTTP/1.1", "rack.multithread"=>false, "action_dispatch.request.request_parameters"=>{}, "rack.multiprocess"=>false, "REQUEST_URI"=>"http://localhost:3000/products", "rack.request.query_hash"=>{}, "SERVER_PORT"=>"3000", "action_controller.instance"=>#<ProductsController:0x7ff9306437d8 ...>, "rack.session.options"=>{:key=>"_session_id", :domain=>nil, :httponly=>true, :id=>"c3b7905ef831122d11c0c55ca9f3a0c9", :path=>"/", :expire_after=>nil}, "REQUEST_METHOD"=>"GET", "rack.request.query_string"=>"", "action_dispatch.request.content_type"=>nil, "rack.input"=>#<StringIO:0x7ff9316a89c0>, "QUERY_STRING"=>"", "GATEWAY_INTERFACE"=>"CGI/1.1"}>, @_headers={"Content-Type"=>"text/html"}, @view_context_class=nil, @_response=#<ActionDispatch::Response:0x7ff930643648 @content_type="text/html", @request=#<ActionDispatch::Request:0x7ff930643710 @filtered_parameters={"action"=>"index", "controller"=>"products"}, @env={"action_dispatch.request.formats"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"action"=>"index", "controller"=>"products"}, "rack.session"=>{"session_id"=>"c3b7905ef831122d11c0c55ca9f3a0c9"}, "HTTP_HOST"=>"localhost:3000", "HTTP_ACCEPT"=>"text/html", "SERVER_NAME"=>"localhost", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7ff9316a7bb0 @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @env={...}, @check_ip_spoofing=true>, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.errors"=>#<IO:0x7ff935905ac0>, "SERVER_PROTOCOL"=>"HTTP/1.1", "action_dispatch.request.symbolized_path_parameters"=>{:controller=>"products", :action=>"index"}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.secret_token"=>"4ed7d5860edadfce5bd19c1b05794b52572c6e8df4f3bd6f1b0ab3c262ebbca107bc8237ba659b0dbf3d2b16fa970ea3b8cdf40b109b1f7c9b7363aeb5686352", "rack.version"=>[1, 1], "rack.run_once"=>false, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)", "REMOTE_ADDR"=>"127.0.0.1", "PATH_INFO"=>"/products", "action_dispatch.request.path_parameters"=>{:controller=>"products", :action=>"index"}, "SCRIPT_NAME"=>"", "action_dispatch.parameter_filter"=>[:password], "HTTP_VERSION"=>"HTTP/1.1", "rack.multithread"=>false, "action_dispatch.request.request_parameters"=>{}, "rack.multiprocess"=>false, "REQUEST_URI"=>"http://localhost:3000/products", "rack.request.query_hash"=>{}, "SERVER_PORT"=>"3000", "action_controller.instance"=>#<ProductsController:0x7ff9306437d8 ...>, "rack.session.options"=>{:key=>"_session_id", :domain=>nil, :httponly=>true, :id=>"c3b7905ef831122d11c0c55ca9f3a0c9", :path=>"/", :expire_after=>nil}, "REQUEST_METHOD"=>"GET", "rack.request.query_string"=>"", "action_dispatch.request.content_type"=>nil, "rack.input"=>#<StringIO:0x7ff9316a89c0>, "QUERY_STRING"=>"", "GATEWAY_INTERFACE"=>"CGI/1.1"}>, @length=0, @writer=#<Proc:0x00007ff931530c50@/home/rubys/git/rails/actionpack/lib/action_dispatch/http/response.rb:44>, @etag=nil, @blank=false, @sending_file=false, @status=200, @cache_control={}, @body=[], @header={}, @block=nil, @cookie=[]>>
action_dispatch.parameter_filter: [:password]
action_dispatch.remote_ip: #<ActionDispatch::RemoteIp::RemoteIpGetter:0x7ff9316a7bb0 @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @env={"action_dispatch.request.formats"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"action"=>"index", "controller"=>"products"}, "rack.session"=>{"session_id"=>"c3b7905ef831122d11c0c55ca9f3a0c9"}, "HTTP_HOST"=>"localhost:3000", "HTTP_ACCEPT"=>"text/html", "SERVER_NAME"=>"localhost", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7ff9316a7bb0 ...>, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.errors"=>#<IO:0x7ff935905ac0>, "SERVER_PROTOCOL"=>"HTTP/1.1", "action_dispatch.request.symbolized_path_parameters"=>{:controller=>"products", :action=>"index"}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>], "action_dispatch.secret_token"=>"4ed7d5860edadfce5bd19c1b05794b52572c6e8df4f3bd6f1b0ab3c262ebbca107bc8237ba659b0dbf3d2b16fa970ea3b8cdf40b109b1f7c9b7363aeb5686352", "rack.version"=>[1, 1], "rack.run_once"=>false, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)", "REMOTE_ADDR"=>"127.0.0.1", "PATH_INFO"=>"/products", "action_dispatch.request.path_parameters"=>{:controller=>"products", :action=>"index"}, "SCRIPT_NAME"=>"", "action_dispatch.parameter_filter"=>[:password], "HTTP_VERSION"=>"HTTP/1.1", "rack.multithread"=>false, "action_dispatch.request.request_parameters"=>{}, "rack.multiprocess"=>false, "REQUEST_URI"=>"http://localhost:3000/products", "rack.request.query_hash"=>{}, "SERVER_PORT"=>"3000", "action_controller.instance"=>#<ProductsController:0x7ff9306437d8 @_action_name="index", @products=[], @_env={...}, @config=#<OrderedHash {}>, @_status=200, @_response_body=nil, @lookup_context=#<ActionView::LookupContext:0x7ff930625918 @frozen_formats=true, @details={:handlers=>[:rjs, :erb, :rhtml, :builder, :rxml], :formats=>[:html], :locale=>[:en, :en]}, @view_paths=[#<ActionView::FileSystemResolver:0x7ff9316f3b28 @path=#<Pathname:/home/rubys/tmp/work/testapp/app/views>, @cached={}, @caching=false>], @handlers_regexp=/\.(?:rjs|erb|rhtml|builder|rxml)$/, @details_key=#<ActionView::LookupContext::DetailsKey:0x7ff930541470 @hash=70354117200440>, @skip_default_locale=false, @default_handlers=[:rjs, :erb, :rhtml, :builder, :rxml]>, @action_has_layout=true, @_request=#<ActionDispatch::Request:0x7ff930643710 @filtered_parameters={"action"=>"index", "controller"=>"products"}, @env={...}>, @_headers={"Content-Type"=>"text/html"}, @view_context_class=nil, @_response=#<ActionDispatch::Response:0x7ff930643648 @content_type="text/html", @request=#<ActionDispatch::Request:0x7ff930643710 @filtered_parameters={"action"=>"index", "controller"=>"products"}, @env={...}>, @length=0, @writer=#<Proc:0x00007ff931530c50@/home/rubys/git/rails/actionpack/lib/action_dispatch/http/response.rb:44>, @etag=nil, @blank=false, @sending_file=false, @status=200, @cache_control={}, @body=[], @header={}, @block=nil, @cookie=[]>>, "rack.session.options"=>{:key=>"_session_id", :domain=>nil, :httponly=>true, :id=>"c3b7905ef831122d11c0c55ca9f3a0c9", :path=>"/", :expire_after=>nil}, "REQUEST_METHOD"=>"GET", "rack.request.query_string"=>"", "action_dispatch.request.content_type"=>nil, "rack.input"=>#<StringIO:0x7ff9316a89c0>, "QUERY_STRING"=>"", "GATEWAY_INTERFACE"=>"CGI/1.1"}, @check_ip_spoofing=true>
action_dispatch.request.accepts: [#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>]
action_dispatch.request.content_type: nil
action_dispatch.request.formats: [#<Mime::Type:0x7ff932287b38 @symbol=:html, @string="text/html", @synonyms=["application/xhtml+xml"]>]
action_dispatch.request.parameters: {"action"=>"index", "controller"=>"products"}
action_dispatch.request.path_parameters: {:controller=>"products", :action=>"index"}
action_dispatch.request.query_parameters: {}
action_dispatch.request.request_parameters: {}
action_dispatch.request.symbolized_path_parameters: {:controller=>"products", :action=>"index"}
action_dispatch.secret_token: "4ed7d5860edadfce5bd19c1b05794b52572c6e8df4f3bd6f1b0ab3c262ebbca107bc8237ba659b0dbf3d2b16fa970ea3b8cdf40b109b1f7c9b7363aeb5686352"
rack.errors: #<IO:0x7ff935905ac0>
rack.input: #<StringIO:0x7ff9316a89c0>
rack.multiprocess: false
rack.multithread: false
rack.request.query_hash: {}
rack.request.query_string: ""
rack.run_once: false
rack.session: {"session_id"=>"c3b7905ef831122d11c0c55ca9f3a0c9"}
rack.session.options: {:key=>"_session_id", :domain=>nil, :httponly=>true, :id=>"c3b7905ef831122d11c0c55ca9f3a0c9", :path=>"/", :expire_after=>nil}
rack.url_scheme: "http"
rack.version: [1, 1]
Response
Headers :
None
Create a product
get /products/new
post /products
product[title] => Web Design for Dummies
You are being
redirected .
get http://localhost:3000/products/1
Product was successfully created.
Title:
Web Design for Dummies
Edit |
Back
Verify the stack traceback
get /products
500 Internal Server Error If you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong.
Expected at least 1 element matching "code", found 0.
Traceback:
no_method_error.rb:30
/home/rubys/git/gorp/lib/gorp/test.rb:148:in `call'
/home/rubys/git/gorp/lib/gorp/test.rb:148:in `get'
no_method_error.rb:29
Environment
Wed, 05 May 2010 10:27:27 GMT
/home/rubys/.rvm/rubies/ruby-1.8.7-p249/bin/ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
gem -v
1.3.6
bundle show
Gems included by the bundle:
* abstract (1.0.0)
* actionmailer (3.0.0.beta3)
* actionpack (3.0.0.beta3)
* activemodel (3.0.0.beta3)
* activerecord (3.0.0.beta3)
* activeresource (3.0.0.beta3)
* activesupport (3.0.0.beta3)
* arel (0.3.3)
* builder (2.1.2)
* bundler (0.9.25)
* erubis (2.6.5)
* i18n (0.4.0.beta1)
* mail (2.2.0)
* memcache-client (1.8.3)
* mime-types (1.16)
* polyglot (0.3.1)
* rack (1.1.0)
* rack-mount (0.6.3)
* rack-test (0.5.3)
* rails (3.0.0.beta3 743d77)
* railties (3.0.0.beta3)
* rake (0.8.7)
* sqlite3-ruby (1.2.5)
* text-format (1.0.0)
* text-hyphen (1.0.0)
* thor (0.13.6)
* treetop (1.4.5)
* tzinfo (0.3.20)
rake about
(in /home/rubys/tmp/work/testapp)
About your application's environment
Ruby version 1.8.7 (x86_64-linux)
RubyGems version 1.3.6
Rack version 1.1
Rails version 3.0.0.beta3
Active Record version 3.0.0.beta3
Action Pack version 3.0.0.beta3
Active Resource version 3.0.0.beta3
Action Mailer version 3.0.0.beta3
Active Support version 3.0.0.beta3
Middleware ActionDispatch::Static, Rack::Lock, Rack::Runtime, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::RemoteIp, Rack::Sendfile, ActionDispatch::Callbacks, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, Rack::MethodOverride, ActionDispatch::Head
Application root /home/rubys/tmp/work/testapp
Environment development
git log -1
commit 743d77f405a16cd1cf1d4bbccd6b512463e10a43
Author: wycats <wycats@gmail.com>
Date: Wed May 5 06:19:42 2010 +0200
Update hidden namespace mechanism to work better with alternate choices and to support full namespaces (not just entire groups)