Квадратные скобки в атрибуте имени тега ввода
Я часто вижу, что в атрибуте name входного тега есть квадратные скобки. Для чего он нужен и почему он используется?
`input id =" academy_name "name="academy[name]"size =" 30 "type =" text "/>`
Так почему же name = "academy [name]", а не просто name = "academy"?
Пожалуйста помоги!
3 ответа
Некоторые серверные инфраструктуры, в том числе Ruby on Rails, используют такую нотацию как указание на то, что они должны собирать данные в одном объекте на стороне сервера (ассоциативный массив - например, map - в случае Ruby on Rails). Так, например, в Ruby on Rails, если у вас есть name="user[email]" и name="user[phone]" и вы отправили форму, в вашем коде Ruby on Rails на сервере вы получите одного пользователя объект из запроса, и он будет иметь ключи электронной почты и телефона.
Это потому, что разработчик использует массив, и, следовательно, он упаковывает имена в []
барные скобки
RoR отображает атрибуты моделей в названии модели, чтобы при публикации формы вы могли легко их назначить, например:
Academy.create(params[:academy])
или же
@academy = Academy.find(params[:id])
@academy.update_attributes(params[:academy]
(также известный как массовое назначение).
Если вы осмотрите academy
объект с ним отправляется в форму в params
хэш, вы увидите, что он имеет элемент для каждой из вещей, содержащихся в квадратных скобках.