【问题标题】:Rails - deleting a single record in a intersection table habtmRails - 删除交集表habtm中的单个记录
【发布时间】:2010-07-28 11:39:12
【问题描述】:

我有一个 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

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

有什么想法吗?

谢谢,亚历克斯

【问题讨论】:

    标签: ruby-on-rails has-and-belongs-to-many


    【解决方案1】:

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

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

    【讨论】:

    • 希望我能在从任何地方炸毁我的整个角色之前看到这个! fwiw googlers,assignment.candidates.first.destroy 将不起作用,您将删除每个候选人记录。不知道为什么,但它很烂。
    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多