Rails 3 select_tag не производит элементы DOM - PullRequest
5 голосов
/ 10 декабря 2010

Я пытаюсь использовать хелпер select_tag в Rails 3. Я начал с очень простого примера, скопированного прямо из документации :

Кажется, он производит правильноеразметка, но выбор не работает - щелчок по нему ничего не делает.

Для сравнения я создал такой же выбор в HAML. Это прекрасно работает. Вот код для обоих:

-# The select_tag version
= select_tag "count", "<option>1</option><option>2</option><option>3</option><option>4</option>"

-# The HAML version
%select{:name => "count", :id => "count"}
  %option 1
  %option 2
  %option 3
  %option 4

Кажется, что select_tag производит параметры в строке, но не как элементы DOM - в Firebug онитолько серый, не выделенный синтаксисом, как элементы DOM в рабочем выделении, производимом HAML.

В чем дело?

1 Ответ

5 голосов
/ 10 декабря 2010

Я разобрался с ответом непосредственно перед тем, как опубликовать вопрос: Строка должна вызывать .html_safe.

Просмотр исходного кода показывает, что Rails повернул все <и > в &lt; и &gt;, потому что теперь он по умолчанию экранирует строки.html_safe говорит: «Нет, действительно, поверь мне, это нормально для отображения в виде HTML.»

Так что это заставляет его работать:

= select_tag "count", "<option>1</option><option>2</option><option>3</option><option>4</option>".html_safe

Было бы хорошо, если бы они обновилидокументация, но, по крайней мере, ответ здесь можно быстро найти здесь и сейчас.:)

...