2012-11-17 75 views
0

我在创建导航链接的应用程序中创建了一个助手。 现在我想为此链接添加一个插入符号,以便我可以在最后得到一个不错的箭头。Rails嵌套html帮手

我的HTML应该是这样的:

<li class='dropdown'> 
    <a class='dropdown-toggle' data-toggle='dropdown' href='#' 
     Dropdown 
     <b class='caret'></b> 
    </a> 

现在,我得到了我的助手的设置是这样的:

content_tag(:li, class: 'active dropdown') do 
    link_to(text, link, class: 'dropdown-toggle') do 
     content_tag(:b, class: 'caret') 
    end 
    end 

但是当我这样做,我得到这个错误信息:

undefined method `stringify_keys' for "/":String 

我也想添加一些项目到我的下拉,所以我需要嵌套一些,但我不知道如何。有没有人可以帮助我并指引我朝着正确的方向发展?

谢谢!

回答

3

您正在向link_to传递一个块,因此您不应该将链接文本传递给它,如in the docs所示。试试这个:

content_tag(:li, class: 'active dropdown') do 
    link_to(link, class: 'dropdown-toggle') do 
    "#{text}#{content_tag(:b, "", class: 'caret')}".html_safe 
    end 
end 
+0

几乎在那里,但现在它转义为脱字符的html,我已经尝试了与html_safe的一些组合,但没有正确的结果。还有其他建议吗? – Niels

+0

哦,是的。如果没有块,content_tag需要标签内容作为其第二个参数,所以我添加了一个空字符串。顺便说一下,你有没有考虑过使用':after' CSS选择器来附加箭头? –