我想创建和删除评论
在模型的评论中,我有user_id
,spectacle_id
,content
和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
如何编写创建和删除方法?
谢谢!
非常感谢
我的当务之急是:我希望同时保存模特评论她的属性,user_id和spectacle_id
我这样做:
def创建 @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
端
我的浏览器出现了一些错误:
在ReviewsController #create中的ActiveRecord :: RecordNotFound 找不到没有ID的用户
有什么问题?
谢谢
答案 0 :(得分:0)
您可以my_user.reviews.build(params).save
或直接my_user.reviews.create(params)
。
要删除评论,您需要执行此操作my_user.reviews.where(myconditions).delete_all
或my_user.reviews.where(mycondition).first.delete
。
另外,直接来自奇观:my_spectacle.reviews.create(params)
等。
您可以在documentation
上找到更多示例