I want to create and delete reviews
In the model's review I have: user_id
, spectacle_id
, content
and rating
.
# 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
How can I write methods create and delete?
Thank you!
Thank you very much
My preoccupation is: i want to save in model review at the same time her attributes, user_id and spectacle_id
I do something like this:
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
and i have some error on my browser:
ActiveRecord::RecordNotFound in ReviewsController#create Couldn't find User without an ID
What is wrong?
Thank you