Rails 3 accept_nested_attributes_for и параллелизм - PullRequest
1 голос
/ 29 июня 2011

Я только что закончил RailsCasts 196 и 197, имея дело с вложенными моделями в формах. Изучая сгенерированные атрибуты name элементов формы, становится ясно, что числа в скобках представляют позиции массива, а не идентификаторы первичного ключа. Например, в случае:

name="survey[questions_attributes][0][answers_attributes][2][content]"

'0' обозначает первый Вопрос, появляющийся в форме, а не Вопрос с id = 0 (который в любом случае был бы недопустимым) Точно так же «2» обозначает третий ответ, а не ответ с id = 2. Что если один пользователь удалит Вопрос 0, а другой пользователь редактирует Вопрос 1. После удаления Вопрос 1 будет в позиции массива 0. Это вызовет проблему? Почему бы просто не использовать первичные ключи для этого?

Спасибо!

1 Ответ

0 голосов
/ 30 июня 2011

Я не могу сейчас воспроизвести это, но можете ли вы исследовать содержание survey[questions_attributes][0]?Я предполагаю, что это хеш, содержащий идентификатор вопроса, и в этом случае ваш сценарий должен работать нормально.В случае, если пользователь А удаляет вопрос №.0, пока пользователь B редактирует, это должно привести к ошибке «вопрос не найден» для пользователя B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...