Rails 3 select_tag不生成DOM元素

时间:2010-12-10 14:38:44

标签: ruby-on-rails ruby-on-rails-3 haml

我正在尝试在Rails 3中使用select_tag帮助器。我从一个非常基本的示例开始,直接复制from the documentation

它似乎产生了正确的标记,但是选择不起作用 - 单击它什么都不做。

为了比较,我在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中,它们只是灰色的,而不像HAML生成的工作选择中的DOM元素那样突出显示语法。

这是什么交易?

1 个答案:

答案 0 :(得分: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

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