2011-04-29 46 views
1

我试图缩进选项在基于自己的层级,例如类别的选择列表Category Subcategory  Subsubcategory如何获得options_for_select兑现 标签

我已经试过: <% options = options_for_select @categories.map{|c| [("&nbsp;" * c.level) + c.name, c.id]} %>, 但这呈现为&nsbp;Subcategory&nbsp;&nbsp;Subsubcategory

我已经试过: <% options = options_for_select @categories.map{|c| [(" " * c.level) + c.name, c.id]} %>, 但是这忽略了空间,并呈现为SubcategorySubsubcategory

作为一个测试,我试过<%= ("&nbsp;" * 3) + "hello" %>,这使我如何期待:   hello

有谁知道如何得到我要找的结果?

回答

1

尝试使用(("&nbsp;" * c.level) + c.name).html_safe。问题在于使用html_escapeoptions_for_select帮助程序方法,该方法转义您的&nbsp;实体。添加html_safe将允许options_for_select助手调用的html_escape方法避免空间逸出。

+0

'''html_safe'''标志着整个字符串是安全的,所以这样做之前,强烈建议,以确保'''c.level'''和'''c.name'''不能包含任何用户输入。否则,使用'''h()'''helper来转义它们是有意义的。 – 2014-05-15 02:42:19