Квадратные скобки в атрибуте имени тега ввода

Я часто вижу, что в атрибуте 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 хэш, вы увидите, что он имеет элемент для каждой из вещей, содержащихся в квадратных скобках.

Другие вопросы по тегам