Erreur "uninitialized constant XyzController"

Bonjour

pour tester rails 2 et le REST je m’entraine à recérer une petite
application de carnet d’adresse

avec des correspondants qui dépendant de villes et de categories

J’ai donc monté mon application avec migrations et un scaffold initial
pour
correspondant, puis copier/coller et modifier pour les vues des autres
(villes et categories)
Mais voici qu’avec le même code tout fonctionne sauf pour categories où
new
/ edit / delete / show (mais pas index …) me renvoient une belle
erreur
“uninitialized constant CategorieController”

voivi le code très classique en dessous
Je sens le truc bête …
merci

NG

class CategoriesController < ApplicationController

def index
@categories = Categorie.find(:all, :order => ‘nom asc’)

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

end

def show
@categorie = Categorie.find(params[:id])

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

end

def new
@categorie = Categorie.new

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

end

def edit
@categorie = Categorie.find(params[:id])
end

def create
@categorie = Categorie.new(params[:categorie])

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

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

def update
@categorie = Categorie.find(params[:id])

respond_to do |format|
  if @categorie.update_attributes(params[:categorie])
    flash[:notice] = 'la categorie' + @categorie.nom + ' a été mise 

Ã
jour.’
format.html { redirect_to(categories_url) }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @categorie.errors, :status =>
:unprocessable_entity }
end
end
end

def destroy
@categorie = Categorie.find(params[:id])
@categorie.destroy

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

end

end

Salut Nicolas,

“uninitialized constant CategorieController”

class CategoriesController < ApplicationController

Categorie vs. Categories ? (faute de frappe quelque part, ou problème
de nommage de fichier .rb, ou problème de pluralisation)

Thibaut

LoGeek
[blog] http://evolvingworker.com - tools for a better day
[blog] http://blog.logeek.fr - about writing software

2008/1/6, Thibaut Barrère [email protected]:

et bien j’y ai pensé mais si je change en class CategorieController
j’ai dès l’index une belle erreur

Expected
/Users/nicolasg/Documents/RubyOnRails/correspondants/app/controllers/categories_controller.rb
to define CategoriesController

et les autres actions ont la m^me erreur.

Je m’oriente donc vers un changement du nom de la table/modèle/controler
car
j’ai aussi pensé au category/categories …

merci qd même :slight_smile:

NG

Bonsoir,

je crois que la piste de Thibaut est bien la bonne Nicolas.
Tu appelles un contrôleur “Categorie” alors que c’est
CategoriesController que tu as écris.
Même si tu changes le nom du contrôleur, il faut renommer le fichier.

Un contrôleur CategorieController est contenu dans un fichier app/
controllers/categorie_controller.rb.
Essaie en renommant de bout en bout les noms soumis à convention.

Guillaume “Zifro” DESRAT
Président de l’association Ruby France
http://www.rubyfrance.org/