Rails - удаление одной записи в таблице пересечений habtm - PullRequest
4 голосов
/ 28 июля 2010

У меня есть отношение 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

В настоящий момент все, что я думаю, это уничтожить объект, а не запись в таблице пересечений

есть идеи?

Спасибо, Алекс

Ответы [ 2 ]

13 голосов
/ 28 июля 2010

Вот как я это сделал для дальнейшего использования.

  assignment = Assignment.find(params[:assignment_id])
  candidate = assignment.candidates.find(params[:candidate_ids])
  assignment.candidates.delete(candidate)
0 голосов
/ 28 июля 2010

Вы добавили квалификатор :dependent => :destroy в отношения has_many (или has_and_belongs_to_many) связанных моделей?

...