首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建和删除has_many :通过关联

创建和删除has_many :通过关联
EN

Stack Overflow用户
提问于 2014-04-19 22:53:25
回答 1查看 314关注 0票数 0

我想创建和删除评论

在模型的评论中,我有:user_idspectacle_idcontentrating

代码语言:javascript
复制
# 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)

代码语言:javascript
复制
@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的用户

怎么啦?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-19 23:21:37

您可以执行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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23171531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档