Rails - 删除交集表 habtm 中的单个记录

发布于 2024-09-12 03:40:21 字数 466 浏览 6 评论 0原文

我有一个 habtm 关系(作业 <指派候选人>候选人)

我希望能够从作业中删除一名候选人。 这是到目前为止我的代码

 @assignment = Assignment.find(:first,
  :joins => :candidates,
  :select => "assignments_candidates.*",
  :conditions => ["assignments_candidates.candidate_id = ? AND assignments_candidates.assignment_id = ?", 
    params[:candidate_id], params[:assignment_id]]
  )
  @assignment.destroy

目前我认为这只是破坏对象而不是交集表中的记录

有什么想法吗?

谢谢,亚历克斯

I have a habtm relationship (assignments < assignments_candidates > candidates)

I want to be able to delete one candidate off an assignment.
here is my code so far

 @assignment = Assignment.find(:first,
  :joins => :candidates,
  :select => "assignments_candidates.*",
  :conditions => ["assignments_candidates.candidate_id = ? AND assignments_candidates.assignment_id = ?", 
    params[:candidate_id], params[:assignment_id]]
  )
  @assignment.destroy

At the moment all i think this does is destroy the object not the record in the intersection table

any ideas ?

Thanks, Alex

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吾性傲以野 2024-09-19 03:40:21

以下是我的做法,以供将来参考。

  assignment = Assignment.find(params[:assignment_id])
  candidate = assignment.candidates.find(params[:candidate_ids])
  assignment.candidates.delete(candidate)

Here is how I did it for future reference.

  assignment = Assignment.find(params[:assignment_id])
  candidate = assignment.candidates.find(params[:candidate_ids])
  assignment.candidates.delete(candidate)
东走西顾 2024-09-19 03:40:21

您是否添加了 :dependent =>; :destroy 限定符到关联模型的 has_many (或 has_and_belongs_to_many)关系?

Have you added a :dependent => :destroy qualifier to the has_many (or has_and_belongs_to_many) relationships the associated models?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文