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 :

CREATE AND DELETE The has_many :through Association


Sujet :

Ruby on Rails

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 22
    Points : 12
    Points
    12
    Par défaut CREATE AND DELETE The has_many :through Association
    Bonjour tout le monde,
    je voudrais sauvegarder dans la table reviews: ses attributs (content, voto), user_id, spectacle_id au même moment.
    Voici les models:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Spectacle.rb
     
        class Spectacle < ActiveRecord::Base
          has_many :reviews , dependent: :destroy
          has_many :users, through: :reviews
        end
    User.rb
     
        class User < ActiveRecord::Base
          has_many :reviews , dependent: :destroy
          has_many :spectacles, through: :reviews
        end
    Review.rb
     
        class Review < ActiveRecord::Base
          belongs_to :spectacle 
          belongs_to :user
        end
    j'ai ecrit ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
         def create 
           @user = User.find(params[:id]) 
           @spectacle = Spectacle.find(params[:id]) 
           @user.reviews.create(user_id: @user.id)
           @spectacle.reviews.create(spectacle_id: @spectacle.id)
           @review = Review.new(review_params)
          if @review.save
            flash[:success] = "Review created!"
            redirect_to :root
          else
            render 'home'
          end
        end
    Mais cette erreur au niveau du client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ActiveRecord::RecordNotFound in ReviewsController#create 
     
    Couldn't find User without an ID
    Qu'est-ce qui ne va pas?
    J'ai bien ecriT la fonction create?
    Comment ecrire la fonction destroy pour effacer une review?

    Merci d'avance!

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Bonjour (réponse un peu tardive)

    Tu n'as pas mis le code de la view, mais il y a forcement quelque chose de douteux sur ses lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @user = User.find(params[:id]) 
    @spectacle = Spectacle.find(params[:id])
    params[:id] ne peut pas être à la fois l'id du User et l'id du Spectacle

    et avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @user.reviews.create(user_id: @user.id)
    @spectacle.reviews.create(spectacle_id: @spectacle.id)
    @review = Review.new(review_params)
    tu va créer 3 enregistrements dans reviews ?!!!!

Discussions similaires

  1. Prob Adding and Deleting objects
    Par andy38 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 14/01/2009, 21h35
  2. wxWidget new and delete
    Par elraton dans le forum wxWidgets
    Réponses: 4
    Dernier message: 10/09/2008, 16h11
  3. Association, has_many through et cache
    Par Jubee dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 05/03/2008, 17h50
  4. [Utilisation] Update to revision uniquement sur create et delete de fichiers
    Par stephane.julien dans le forum Subversion
    Réponses: 3
    Dernier message: 03/12/2007, 08h09

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