我想创建和删除评论
在模型的评论中,我有: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如何编写create和delete方法?
谢谢!
非常感谢
我最关心的是:我想在模型评审中同时保存她的属性user_id和spectacle_id
我这样做:
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结束
在我的浏览器上有一些错误:
ReviewsController#create中的ActiveRecord::RecordNotFound找不到没有ID的用户
怎么啦?
谢谢
发布于 2014-04-19 23:21:37
您可以执行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上找到更多示例
https://stackoverflow.com/questions/23171531
复制相似问题