NameError in AdminController#index building scaffold

I’m a pretty big newbie with ROR, but when following a tutorial I
encounter an ugly error when building a scaffold. Here is my
environment

Dev system:

  • Windows XP
  • java version “1.5.0_06”
  • MySQL java version “1.5.0_06”
  • Ruby 1.8.4
  • Ruby Gems 0.9.0
  • Gem install mysql
    Successfully installed mysql-2.7.1-mswin32
    Installing ri documentation for mysql-2.7.1-mswin32…
    Installing RDoc documentation for mysql-2.7.1-mswin32…
  • Table in ediweb database
    mysql> desc users;
    ±---------------±------------±-----±----±--------±---------------+
    | Field | Type | Null | Key | Default | Extra |
    ±---------------±------------±-----±----±--------±---------------+
    | user_id | int(11) | NO | PRI | NULL | auto_increment |
    | user_login | varchar(50) | NO | | | |
    | user_firstname | varchar(50) | NO | | | |
    | user_lastname | varchar(50) | NO | | | |
    | user_role | varchar(50) | NO | | | |
    ±---------------±------------±-----±----±--------±---------------+
    5 rows in set (0.18 sec)

I am also connecting to Subversion on a linux system as my Repo.

When I start my server I am able to view several other controllers. I
stop my server and create a scaffold in RadRails.

ediweb> ruby script/generate scaffold Users Admin
exists app/controllers/
exists app/helpers/
exists app/views/admin
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/users.rb
create test/unit/users_test.rb
create test/fixtures/users.yml
identical app/views/admin/_form.rhtml
create app/views/admin/list.rhtml
create app/views/admin/show.rhtml
create app/views/admin/new.rhtml
create app/views/admin/edit.rhtml
create app/controllers/admin_controller.rb
create test/functional/admin_controller_test.rb
create app/helpers/admin_helper.rb
create app/views/layouts/admin.rhtml
create public/stylesheets/scaffold.css

Looks like no problem, but then I check the page:

NameError in AdminController#index

uninitialized constant User

RAILS_ROOT: ./script/…/config/…
Application Trace | Framework Trace | Full Trace

D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:123:in
const_missing' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:131:inconst_missing’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/inflector.rb:161:in
constantize' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/core_ext/string/inflections.rb:59:inconstantize’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:194:in
paginator_and_collection_for' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:129:inpaginate’
#{RAILS_ROOT}/app/controllers/admin_controller.rb:12:in list' #{RAILS_ROOT}/app/controllers/admin_controller.rb:3:inindex’
-e:4

D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:123:in
const_missing' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:131:inconst_missing’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/inflector.rb:161:in
constantize' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/core_ext/string/inflections.rb:59:inconstantize’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:194:in
paginator_and_collection_for' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:129:inpaginate’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in
perform_action_without_filters' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:368:inperform_action_without_benchmark’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' D:/ruby/lib/ruby/1.8/benchmark.rb:293:inmeasure’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/rescue.rb:82:inperform_action’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in
process_without_filters' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:377:inprocess_without_session_management_support’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/session_management.rb:117:in
process' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:indispatch’
D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:115:in
handle_dispatch' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:81:inservice’
D:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in service' D:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:inrun’
D:/ruby/lib/ruby/1.8/webrick/server.rb:173:in start_thread' D:/ruby/lib/ruby/1.8/webrick/server.rb:162:instart_thread’
D:/ruby/lib/ruby/1.8/webrick/server.rb:95:in start' D:/ruby/lib/ruby/1.8/webrick/server.rb:92:instart’
D:/ruby/lib/ruby/1.8/webrick/server.rb:23:in start' D:/ruby/lib/ruby/1.8/webrick/server.rb:82:instart’
D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:67:in
dispatch' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/servers/webrick.rb:59 D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
require' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/server.rb:30 D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
`require’
script/server:3

D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:123:in
const_missing' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:131:inconst_missing’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/inflector.rb:161:in
constantize' D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/core_ext/string/inflections.rb:59:inconstantize’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:194:in
paginator_and_collection_for' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/pagination.rb:129:inpaginate’
#{RAILS_ROOT}/app/controllers/admin_controller.rb:12:in list' #{RAILS_ROOT}/app/controllers/admin_controller.rb:3:inindex’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in
perform_action_without_filters' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:368:inperform_action_without_benchmark’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' D:/ruby/lib/ruby/1.8/benchmark.rb:293:inmeasure’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/rescue.rb:82:inperform_action’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in
process_without_filters' D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:377:inprocess_without_session_management_support’
D:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/session_management.rb:117:in
process' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:indispatch’
D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:115:in
handle_dispatch' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:81:inservice’
D:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in service' D:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:inrun’
D:/ruby/lib/ruby/1.8/webrick/server.rb:173:in start_thread' D:/ruby/lib/ruby/1.8/webrick/server.rb:162:instart_thread’
D:/ruby/lib/ruby/1.8/webrick/server.rb:95:in start' D:/ruby/lib/ruby/1.8/webrick/server.rb:92:instart’
D:/ruby/lib/ruby/1.8/webrick/server.rb:23:in start' D:/ruby/lib/ruby/1.8/webrick/server.rb:82:instart’
D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:67:in
dispatch' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/servers/webrick.rb:59 D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
require' D:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/server.rb:30 D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
D:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
`require’
script/server:3
-e:4

This error occured while loading the following files:
user.rb

Request

Parameters: None

Show session dump


flash: !map:ActionController::Flash::FlashHash {}

Response
Headers: {“cookie”=>[], “Cache-Control”=>“no-cache”}

I have tried building the scaffold with users and admin instead of Users
and Admin, but it’s still not working! Also, I verified MySQL
connectivity from ruby server to the database by doing the following:

ActiveRecord::Base.connection.select_all(‘desc users’)
=> [{“Extra”=>“auto_increment”, “Default”=>nil, “Null”=>“NO”,
“Type”=>“int(11)”, “Field”=>“user_id”, “Key”=>“PRI”}, {“Extra”=>"",
“Default”=>"", “Null”=>“NO”, “Type”=>“varchar(50)”,
“Field”=>“user_login”, “Key”=>""}, {“Extra”=>"", “Default”=>"",
“Null”=>“NO”, “Type”=>“varchar(50)”, “Field”=>“user_firstname”,
“Key”=>""}, {“Extra”=>"", “Default”=>"", “Null”=>“NO”,
“Type”=>“varchar(50)”, “Field”=>“user_lastname”, “Key”=>""},
{“Extra”=>"", “Default”=>"", “Null”=>“NO”, “Type”=>“varchar(50)”,
“Field”=>“user_role”, “Key”=>""}]

ActiveRecord::Base.connection.select_all(‘select * from users’)
ActiveRecord::Base.connection.select_all(‘select * from users’)
=> []

My question is I do have one record in the table but the ‘select *’
query doesn’t come back with nothing. Any help would be appreciated! :slight_smile:

Thanks
James

One more note, I didn’t have any records in the database! When I
inserted some I am still able to connect through the development console
– but still gettig the same error from the http://localhost:3000/admin
— any ideas?

ActiveRecord::Base.connection.select_all(‘select* from users’)
ActiveRecord::Base.connection.select_all(‘select* from users’)
=> [{“user_login”=>“jsmith”, “user_firstname”=>“joe”, “user_id”=>“1”,
“user_role”=>“admin”, “user_lastname”=>“smith”},
{“user_login”=>“bsmith”, “user_firstname”=>“bob”, “user_id”=>“2”,
“user_role”=>“user”, “user_lastname”=>“smith”}]

I forgot by database.yml has the following for the dev environment:

development:
adapter: mysql
database: ediweb
username: root
password: ********
host: localhost

Also, my model users.rb:

class Users < ActiveRecord::Base
end

I was able to solve my own problem. I generated the scaffold using
‘ruby script/generate scaffold user Admin’

ediweb> ruby script/generate scaffold user Admin
exists app/controllers/
exists app/helpers/
exists app/views/admin
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/user.rb
create test/unit/user_test.rb
create test/fixtures/users.yml
create app/views/admin/_form.rhtml
create app/views/admin/list.rhtml
create app/views/admin/show.rhtml
create app/views/admin/new.rhtml
create app/views/admin/edit.rhtml
create app/controllers/admin_controller.rb
create test/functional/admin_controller_test.rb
create app/helpers/admin_helper.rb
create app/views/layouts/admin.rhtml
create public/stylesheets/scaffold.css

How did ruby know that my database table was ‘users’ when I generated
the scaffold as ‘user’? I’m sorry if this is a dumb question :slight_smile:

Unless you change it, it always looks for the plural form of the
model as the table… so a “person” model would have a “people” table,
“cat” model would have “cats” table, etc. This is pretty basic and
covered in “Agile Web D. in Rails” as well as a lot of
online tutorials.

I figured it out – I had to remove the mysql gem.

gem uninstall mysql

Everything worked after that!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs