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:
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
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
Mais cette erreur au niveau du client:
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
Qu'est-ce qui ne va pas?
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
J'ai bien ecriT la fonction create?
Comment ecrire la fonction destroy pour effacer une review?
Merci d'avance!
Partager