ben ******* wrote:
> Bonjour,
>
> Je me trouve dans une impasse. J'obtiens le message d'erreur suivant
> quand je souhaite afficher la page d'accueil de mes modules
> (monserveur/modules) :
>
> undefined method `all' for Module:Class
>
> J'ai utilisé le scaffold pour générer mon contrôleur module... Pour mes
> autres contrôleurs, tout se passe très bien! Le code est identique.
>
> mon modèle contient :
>
> class Module < ActiveRecord::Base
> end
>
> mon contrôleur :
>
> class ModulesController < ApplicationController
> # GET /modules
> # GET /modules.xml
> def index
> @modules = Module.all
>
> respond_to do |format|
> format.html # index.html.erb
> format.xml { render :xml => @modules }
> end
> end
>
> # GET /modules/1
> # GET /modules/1.xml
> def show
> @module = Module.find(params[:id])
>
> respond_to do |format|
> format.html # show.html.erb
> format.xml { render :xml => @module }
> end
> end
>
> # GET /modules/new
> # GET /modules/new.xml
> def new
> @module = Module.new
>
> respond_to do |format|
> format.html # new.html.erb
> format.xml { render :xml => @module }
> end
> end
>
> # GET /modules/1/edit
> def edit
> @module = Module.find(params[:id])
> end
>
> # POST /modules
> # POST /modules.xml
> def create
> @module = Module.new(params[:module])
>
> respond_to do |format|
> if @module.save
> flash[:notice] = 'Module was successfully created.'
> format.html { redirect_to(@module) }
> format.xml { render :xml => @module, :status => :created,
> :location => @module }
> else
> format.html { render :action => "new" }
> format.xml { render :xml => @module.errors, :status =>
> :unprocessable_entity }
> end
> end
> end
>
> # PUT /modules/1
> # PUT /modules/1.xml
> def update
> @module = Module.find(params[:id])
>
> respond_to do |format|
> if @module.update_attributes(params[:module])
> flash[:notice] = 'Module was successfully updated.'
> format.html { redirect_to(@module) }
> format.xml { head :ok }
> else
> format.html { render :action => "edit" }
> format.xml { render :xml => @module.errors, :status =>
> :unprocessable_entity }
> end
> end
> end
>
> # DELETE /modules/1
> # DELETE /modules/1.xml
> def destroy
> @module = Module.find(params[:id])
> @module.destroy
>
> respond_to do |format|
> format.html { redirect_to(modules_url) }
> format.xml { head :ok }
> end
> end
> end
>
> Lors de la génération manuelle du scaffold, j'ai bien utilisé un nom au
> singulier 'module'
>
> Concernant les liaisons avec les autres tables dans le fichier routes,
> j'ai :
>
>
> map.resources :modules, :belongs_to => :autres
>
>
> map.resources :autres, :has_many => :modules
>
>
> je ne comprends pas pourquoi j'obtiens ce message d'erreur et seulement
> sur au niveau ce contrôleur ? Surement une erreur d'inattention mais
> laquelle. y a t-il quelque d'incorrect dans tout ce code ?
Salut !
Ben to fameux 'all' pourrait bien dépendre de ta version de RoR, pour
Rails 3 et +, pas de blem cette interface est prédéfinie je crois (info
here
http://railscasts.com/episodes/202-active-record-queries-in-rails-3),
pour rails 2.x, tu devrais créer un "named scope" (désolé, j sai po trop
traduire)comme suit:
class Module
named_scope :all, :conditions => {}
.
.
.
end
...ou bien utiliser le classique query interface "find(:all)", après
tout l'interpreteur t'a dit qu'il ne connaît pas cette methode, donc tu
la créé to named scope, éléméntaire mon cher Watson :)
plus d'info ici
http://stackoverflow.com/questions/2607697/ruby-on-rails-named-scope-implementation
Concernant les mots clés, ben essaie de ne pas en user :-), personnalise
to code
ex: class Module => class MyProjectNameModule (préfixe tes noms de
modèle par un nom de projet e.g., après tout, c'est transparent pour les
end-users)
Les "has_many" et "belongs-to" dans les routes, ne pas surtout confondre
avec le has_many des associations au niveau des modèles, ça s'appèlle un
"nested route" qui imbrique les sub-ressources associés à une ressource
(relation d'association définie au niveau des modèles par les
macros..."has_many" et "belongs_to" !) l'URL de cette ressource, donc
c'est pas du tout là le blem, tout est clean dans cette direction
ben je crois que ça aurra aidé bon nombre, merci
--
Posted via http://www.ruby-forum.com/.
--
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
Subscription settings:
http://groups.google.com/group/railsfrance/subscribe?hl=fr