Rails,为什么这个帮助器不输出HTML,而是引用HTML?

我的application_helper.rb文件中有以下帮助器:

def topmenu pages = { "projects" => projects_path, "photos" => photos_path } pages.map do |key, value| classnames = %( class="current") if controller.controller_name == key "
  • #{link_to(key, value)}
  • " end end

    然后在我的application.html.erb文件中,我有:

      

    出于某种原因,该页面生成的显示来自上述帮助程序的HTML为TEXT,而不是HTML。 不知道为什么? 谢谢

    我认为你正在运行rails3。 在返回字符串之前添加.html_safe方法调用:

     "#{link_to(key, value)}".html_safe 

    它使代码更干净? 不是吗? 你可以在帮助function中做更多的事情(因为它不仅仅是一个HTML)