He oui, parfois on découvre comme ça des mots réservés. Moi j'avais appelé un modèle Thread, et un autre Action. Et ça, il aime pas Rails...
Le plus ***ant de tous, c'est la colonne "type" pour un modèle quand on utilise la STI (Single Table Inheritance)... Rails nous force plus ou moins à écrire un controlleur différent pour chaque modèle héritant. Car quand on veut passer le type en paramètre d'un formulaire il ne veut pas sauver le champ "type" du modèle. Il faut alors faire un truc pas joli pour que ça marche. Michel Belleville a écrit : > Appeller une classe module, quelle bonne idée. Je n'en vois qu'une de > meilleur, appeller un module Class ou une class Class, ou un module > Module... > > Mots-clefs réservés du langage : pas touche. > > Michel Belleville > > > 2009/7/28 Darty Box <[email protected] > <mailto:[email protected]>> > > > 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 ? > -- > 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] -~----------~----~----~----~------~----~------~--~---
