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

AnA*_*ice 8 ruby-on-rails ruby-on-rails-3

我的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
      "<li#{classnames}>#{link_to(key, value)}</li>"
    end
  end
Run Code Online (Sandbox Code Playgroud)

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

<%= topmenu %>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,页面生成显示上述帮助程序中的HTML为TEXT,而不是HTML.不知道为什么?谢谢

Eim*_*tas 25

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

"<li#{classnames}>#{link_to(key, value)}</li>".html_safe
Run Code Online (Sandbox Code Playgroud)