链接标签打印而不是解释

时间:2014-06-30 19:10:30

标签: html ruby-on-rails-3

我正在尝试将一个css文件包含在rails网站上的布局文件中,并且标题中包含的标记未被解释,而是显示在页面上。我把标签放在了部分。链接标记如下所示。我指定了page_style并将其正确插入页面,但页面显示下面的第二个标签,而不是解释标签。

<%= "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/#{@page_style}.css\">"    if !@page_style.nil? %>

<link rel="stylesheet" type="text/css" href="/stylesheets/standard.css">

2 个答案:

答案 0 :(得分:1)

在Rails(3及更高版本)中,字符串在显示之前会进行HTML转义,因此您的<会被编码为&lt;等。

您可以将.html_safe添加到字符串中,如下所示:

<%= "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/#{@page_style}.css\">".html_safe if !@page_style.nil? %>

但是,如果你重写它以使用这样的stylesheet_link_tag助手,那将会更多Rails-y:

<%= stylesheet_link_tag(@page_style) if @page_style.present? %>

答案 1 :(得分:0)

我真的不知道你在哪里开始了Rails命令。 通常基本的Rails开始如下:

<% if @page_style.nil? %>
    // Do something here
<% end %>

您可能想要添加“绑定.pry”#39;在@page_style使用后立即在你的控制器中。在你的服务器选项卡中,它应该打开你的rails控制台,你可以检查@page_style的输出(甚至应用@ page_style.nil?操作并检查其结果)。