IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Fonctions dans le modèle ?


Sujet :

Ruby on Rails

  1. #1
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut Fonctions dans le modèle ?
    Bonjour,

    Je débute sous Ruby On Rails et une question me perturbe.

    En effet, développant une petite application je souhaitais mettre dans mon modele un ensemble de fonctions que j'aurais juste eu à appeler depuis mon controleur.

    J'ai au départ développé mes instructions (composé grosso-modo d'un .find) dans le controller, puis j'appelais le controller qui me donnait le bon résultat au niveau de la vue (même si aucun vue n'était associé, j'utilise "render :text" pour mes tests).

    J'ai mis ces instructions au sein d'une fonction dans mon Modele (qui établit lui la connexion donc avec ma table dans ma BDD). Cependant, dès que j'appelle ma fonction sous la forme MonModele.ma_fonction(mon_parametre) il me dit tout simplement qu'il ne connait pas cette fonction (erreur : undefined method).
    J'ai bien vérifié que je n'avais pas d'erreur d'écriture ni d'appel.

    Ma question : peut-on définir des fonctions dans un modele (autre que les methodes validate par exemple) ou doit-on faire l'ensemble des requetes (.find etc.) dans le controleur.

    Je vous remercie,

  2. #2
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Résolu... Il suffit de poser sa question pour trouver la réponse parfois.

    Pour ceux que ça intéresse, la méthode doit etre définie ainsi :

    def self.ma_methode
    # Instructions
    end

    L'erreur undefined method survient si le mot clé self est absent.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Juste pour rajouter qu'il existe quelque chose de fortement sympathique en rails pour créer des "finder" au niveau du modèle.
    Il s'agit des named_scope (pour rails 2.x.x) ou des scope (pour rails 3.x.x)

    En gros ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class Voiture < ActiveRecord::Base 
         named_scope :rouges, :conditions => {:couleur => 'Rouge'}
     
    end
    Puis dans ton controler pour récupérer les voitures rouges tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    voitures_rouges = Voiture.rouges

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/06/2015, 10h36
  2. [WD-2003] Fonction remplacer dans 600 modèles
    Par QuestVba dans le forum VBA Word
    Réponses: 4
    Dernier message: 30/10/2012, 14h41
  3. [PHP 5.4] Dans quel modèle impléter une fonction?
    Par absot dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2012, 12h29
  4. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo