Rails 3 select_tag不生成DOM元素

Nat*_*ong 5 haml ruby-on-rails ruby-on-rails-3

我正在尝试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
Run Code Online (Sandbox Code Playgroud)

select_tag似乎产生一个字符串的选项,但不是DOM元素-萤火虫,他们只是灰色的,没有语法高亮显示为选择由HAML产于工作的DOM元素.

这是怎么回事?

Nat*_*ong 5

我在发布问题之前就找到了答案:字符串需要调用.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
Run Code Online (Sandbox Code Playgroud)

如果他们更新文档会很好,但是嘿,至少现在可以在这里快速搜索答案了.:)