2013-09-24 3 views
1

В Rails-приложение, я бежать в случае, когда я хотел бы иметь имя флажок, который заканчивается в квадратных скобках, например:Прием поля формы с квадратными скобками в названии в Rails

name="foo[bar][baz[]]" 

Другие специальные символы, похоже, обрабатываются правильно, но похоже, что Rails выделяет квадратные скобки и рассматривает их как объявление массива вместо того, чтобы быть частью имени. Что нужно сделать, чтобы разрешить произвольные символы (в частности, скобки) в этом имени и правильно ли они обрабатываются Rails?

+0

Если вы хотите иметь набор элементов, назначенных переменной, вы ищете 'name =" foo [bar] [baz] [] "' –

+0

Можете ли вы объяснить немного больше о том, что вы пытаетесь сделать? –

+0

Я пытаюсь поддержать всех персонажей (я предполагаю, кроме пробелов, как это запрещается спецификацией HTML5) во имя флажка. Я заметил, что когда я пытаюсь назвать один 'baz []', он не обрабатывается правильно из-за логики Rails относительно квадратных скобок. Мне интересно, есть ли способ избежать скобок (и других специальных символов?), Чтобы они проходили правильно. – jrdioko

ответ

1

Это потому, что квадратные скобки не допускаются в спецификации:

ID и NAME лексемы должны начинаться с буквы ([A-Za-Z]) и может быть следует любое количество букв , цифры ([0-9]), дефисы («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).

из HTML 4 Basic HTML data types

О части Rails, и сочетание этих двух ответов (1 и 2):

Рельсы делают использование квадратных скобок, чтобы ассоциации в Params Hash, так вы не должны» с этими именами.

+0

Я использую HTML5, который, я считаю, более разрешительный. И Rails уже использует скобки как часть фреймворка (что интересно, если оно нарушает спецификацию). – jrdioko

+0

Прежде всего, вы совершенно не правы. Набор флажков будет описан (почти) точно так же, как OP писал. –

+1

Хорошо, после того, как кто-то взад и вперед вы ответите полностью, проголосовали. –

Смежные вопросы