2014-04-19 71 views
0

我想創建和刪除評論方式創建和刪除的has_many:通過協會

在模型的審查,我有:user_idspectacle_idcontentrating

# 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

我做這樣的事情:

高清創建 @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 

,我有我的瀏覽器的一些錯誤:

的ActiveRecord :: RecordNotFound在ReviewsController#創建 不能沒有一個ID

什麼是錯的找到用戶?

謝謝

+0

更多的例子你可以做這樣的事情.. User.spectacles.build(#attributes) User.spectacles.create(#attributes) 在軌道上閱讀紅寶石..你會得到這個東西 – sp1rs

回答

0

你可以做my_user.reviews.build(params).save或直接my_user.reviews.create(params)

要刪除評論,您需要這樣做my_user.reviews.where(myconditions).delete_allmy_user.reviews.where(mycondition).first.delete

否則,直接從眼鏡是相同的:my_spectacle.reviews.create(params)

您可以找到documentation

+0

我編輯我的問題 –

+0

請看看我做什麼,並告訴我什麼是錯的。非常感謝你! –

+0

只要這樣做:'@review = @ spectacle.reviews.build(review_params)' @ review.save 如果你做了一個'create',你就不能'保存'它(它已經完成了)。 – BriceB