我正在尝试在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元素那样突出显示语法。
这是什么交易?
答案 0 :(得分:5)
我在发布问题之前就找到了答案:字符串需要调用.html_safe。
查看源代码显示Rails已将所有<
和>
转换为<
和>
,因为它现在默认情况下会转义字符串。 html_safe
说“不,不相信我,这个可以显示为HTML。”
这样就可以了:
= select_tag "count", "<option>1</option><option>2</option><option>3</option><option>4</option>".html_safe
如果他们更新文档会很好,但是嘿,至少现在可以在这里快速搜索答案了。 :)