Хорошо, неаяя версия.
Предположим, что ваша форма является form_for @resume
, что означает, что она будет вызывать резюме # создавать или возобновлять действие # update.
Если все education
строки в списке имеют скрытое поле, как этот
<%= hidden_field_tag "resume[education_ids][]", education.id %>
тогда, когда форма была отправлена, они будут проходить в массив в Params [: резюме] [: education_ids] в том порядке, в котором они появляются на странице, когда форма была отправлена , что вам и нужно.
Ассоциация дает вам метод сеттера. Возобновляет # education_ids, что позволяет вам устанавливать ассоциации в порядке, таким образом.
Т.е., ваше действие обновления (если это нормальное действие обновления) можно сказать что-то вроде
@resume = Resume.find_by_id(params[:id])
if @resume.update_attributes(params[:resume])
...
в этом случае, это будет говорить
@resume.update_attributes(:education_ids => [5,6,2,1])
, который, как говорят «набор мои образования будут теми, у которых есть идентификаторы 5,6,2,1, в этом порядке.
CAVEAT: в моей версии рельсов (это может быть исправлено в следующей версии), если вы используете этот метод _ids, и он ужеимеет ассоциации, но в другом порядке он НЕ переупорядочивает их. Дайте ему понять, что происходит.
Каковы имена двух классов моделей в ваших отношениях? –
@MaxWilliams - резюме и образование. резюме has_many education – Will