Problema nada más comenzar: uninitial ized constant UsuariosController::Usuarios


#1

Hola amigos!

Estoy comenzando con esto (con bastantes problemas por cierto) y cuando
tengo todo instalado, un proyecto creado y quiero acceder al primer
ejemplo
con el que estoy trabajando, me devuelve este error:

uninitialized constant UsuariosController::Usuarios

He utilizado generate scaffold para crear el controlador, el modelo y
las
vistas.

Algún camino a seguir para resolver la duda??

Un saludo y gracias!


#2

Hola Sebas, para que se te pueda ayudar mejor es recomendable que
muestre el
código de por ejemplo el controller Usuarios…por ver que pasa

Un saludo

2009/3/25 Sebas S. removed_email_address@domain.invalid


#3

asi es como dice Andrés, muestranos el controller y el routes.rb por
favor

Saludos

Atte.
Miguel Michelson Martinez

www.artenlinea.com

2009/3/26 Andrés gutiérrez removed_email_address@domain.invalid


#4

2009/3/26 Sebas S. removed_email_address@domain.invalid:

 # GET /usuarios
 # GET /usuarios.xml
 def index
   @usuarios = Usuarios.all
Revisa que tu modelo se llama efectivamente Usuarios y no Usuario o algo
así…


#5

La convención es:
-Tablas de la base de datos: USUARIO(S) —>PLURAL.
-Model: USUARIO —>SINGULAR.
-Controller: USUARIO(S) —>PLURAL.

Un saludo
Espero no haberme equivocado

El 26 de marzo de 2009 16:12, Dani D. removed_email_address@domain.invalid escribió:


#6

Hola!

Gracias por las respuestas a pesar de no haber hecho las cosas bien
desde
elprincipio (cosas de la saturacion mental que tenia).

Aquí os pego el codigo del controller y del routes.rb.

controller:

class UsuariosController < ApplicationController

GET /usuarios

GET /usuarios.xml

def index
@usuarios = Usuarios.all

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @usuarios }
end

end

GET /usuarios/1

GET /usuarios/1.xml

def show
@usuarios = Usuarios.find(params[:id])

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @usuarios }
end

end

GET /usuarios/new

GET /usuarios/new.xml

def new
@usuarios = Usuarios.new

respond_to do |format|
  format.html # new.html.erb
  format.xml  { render :xml => @usuarios }
end

end

GET /usuarios/1/edit

def edit
@usuarios = Usuarios.find(params[:id])
end

POST /usuarios

POST /usuarios.xml

def create
@usuarios = Usuarios.new(params[:usuarios])

respond_to do |format|
  if @usuarios.save
    flash[:notice] = 'Usuarios was successfully created.'
    format.html { redirect_to(@usuarios) }
    format.xml  { render :xml => @usuarios, :status => :created,

:location => @usuarios }
else
format.html { render :action => “new” }
format.xml { render :xml => @usuarios.errors, :status =>
:unprocessable_entity }
end
end
end

PUT /usuarios/1

PUT /usuarios/1.xml

def update
@usuarios = Usuarios.find(params[:id])

respond_to do |format|
  if @usuarios.update_attributes(params[:usuarios])
    flash[:notice] = 'Usuarios was successfully updated.'
    format.html { redirect_to(@usuarios) }
    format.xml  { head :ok }
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @usuarios.errors, :status =>

:unprocessable_entity }
end
end
end

DELETE /usuarios/1

DELETE /usuarios/1.xml

def destroy
@usuarios = Usuarios.find(params[:id])
@usuarios.destroy

respond_to do |format|
  format.html { redirect_to(usuarios_url) }
  format.xml  { head :ok }
end

end
end

*routes.rb *

ActionController::Routing::Routes.draw do |map|
map.resources :usuarios

The priority is based upon order of creation: first created ->

highest
priority.

Sample of regular route:

map.connect ‘products/:id’, :controller => ‘catalog’, :action =>

‘view’

Keep in mind you can assign values other than :controller and

:action

Sample of named route:

map.purchase ‘products/:id/purchase’, :controller => ‘catalog’,

:action => ‘purchase’

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions

automatically):

map.resources :products

Sample resource route with options:

map.resources :products, :member => { :short => :get, :toggle =>

:post
}, :collection => { :sold => :get }

Sample resource route with sub-resources:

map.resources :products, :has_many => [ :comments, :sales ],

:has_one
=> :seller

Sample resource route with more complex sub-resources

map.resources :products do |products|

products.resources :comments

products.resources :sales, :collection => { :recent => :get }

end

Sample resource route within a namespace:

map.namespace :admin do |admin|

# Directs /admin/products/* to Admin::ProductsController

(app/controllers/admin/products_controller.rb)

admin.resources :products

end

You can have the root of your site routed with map.root – just

remember
to delete public/index.html.

map.root :controller => “welcome”

See how all your routes lay out with “rake routes”

Install the default routes as the lowest priority.

Note: These default routes make all actions in every controller

accessible via GET requests. You should

consider removing the them or commenting them out if you’re using

named
routes and resources.
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
end

Un saludo!


#7

2009/3/26 Dani D. removed_email_address@domain.invalid:

 def index
   @usuarios = Usuarios.all
Este “Usuarios” no deberia ser “Usuario”?
Este y el resto quiero decir…


#8

Solucionado amigos!

El error fue mío desde el principio. Hice un generate scaffold Usuarios,
lo
he borrado y lo he hecho con Usuario y funciona a la primera.

Perdonad por mi torpeza, pero estoy empezando y cosas como esta, que
sabía
como debía hacerse, las hago mal :smiley:

un saludo a todos y gracias!


#9

2009/3/26 Andrés gutiérrez removed_email_address@domain.invalid:

La convención es:
-Tablas de la base de datos: USUARIO(S) —>PLURAL.
-Model: USUARIO —>SINGULAR.
-Controller: USUARIO(S) —>PLURAL.
Por tanto, si el modelo es Usuario (singular de Usuarios, la tabla):

class UsuariosController < ApplicationController
 # GET /usuarios
 # GET /usuarios.xml
 def index
   @usuarios = Usuarios.all
Este “Usuarios” no deberia ser “Usuario”?