如何获得options_for_select兑现 标签
问题描述:
我试图缩进选项在基于自己的层级,例如类别的选择列表Category
, Subcategory
, Subsubcategory
。如何获得options_for_select兑现 标签
我已经试过: <% options = options_for_select @categories.map{|c| [(" " * c.level) + c.name, c.id]} %>
, 但这呈现为&nsbp;Subcategory
和 Subsubcategory
。
我已经试过: <% options = options_for_select @categories.map{|c| [(" " * c.level) + c.name, c.id]} %>
, 但是这忽略了空间,并呈现为Subcategory
和Subsubcategory
。
作为一个测试,我试过<%= (" " * 3) + "hello" %>
,这使我如何期待: hello
。
有谁知道如何得到我要找的结果?
答
尝试使用((" " * c.level) + c.name).html_safe
。问题在于使用html_escape
的options_for_select
帮助程序方法,该方法转义您的
实体。添加html_safe
将允许options_for_select
助手调用的html_escape
方法避免空间逸出。
'''html_safe'''标志着整个字符串是安全的,所以这样做之前,强烈建议,以确保'''c.level'''和'''c.name'''不能包含任何用户输入。否则,使用'''h()'''helper来转义它们是有意义的。 – 2014-05-15 02:42:19