У меня есть два эскимосных модели, студент и класс. У них есть много-много взаимосвязей, реализованных с has_and_belongs_to_many.
Я хотел бы быть в состоянии изменить который класс эс в студент находится в, а также какие студенческие s принимают каждый класс. То есть, я хочу изменить ученикклассы переменная (добавление и удаление элементов из нее) и наоборот.
Как мне это сделать?
Если я удаление класса из студента «s классов списка, то кажется, что я хочу назвать обновления на моем students_controller. Если это так, то что мне следует передать в качестве параметра для изменения переменной ? Другая коллекция класс es (с надлежащим класс удален)?
Моей другой мыслью является просто вызвать какое-то действие в student_controller (скажем, remove_class) и передать идентификатор класса для удаления. Это кажется чувственным, но не RESTful.Как обновить коллекцию has_and_belongs_to_many RESTfully?
Каков наилучший способ для этого?
Спасибо, что отлично поработали с двумя незначительными изменениями: 1. вызов @ student.courses.destroy (params [: course_id]) дал мне ActiveRecord :: AssociationTypeMismatch, так как он искал курс и получил строку. Я исправил это, сначала найдя правильный курс (@ student.courses.find (params [: course_id])), а затем удалив это. 2. Я не хочу уничтожать курс, просто удалите ассоциацию, поэтому я использовал вызов для удаления вместо уничтожения. –
Рад, что сработал. Я обновил свой пример, чтобы отразить ваши изменения. – austinfromboston