将字符串标记为 HTML 安全

发布于 2024-12-03 01:26:59 字数 1432 浏览 1 评论 0原文

我正在尝试构建我的第一个 Rails 应用程序,并且使用 Ryan Heath 的 navigation_helper 插件为我提供当前的我的导航中的类。我构建了我的命名路由,如下所示:

match 'games' => 'games#index', :as => :games
match 'new' => 'games#new', :as => :new
match 'previous' => 'games#previous', :as => :previous
match 'settings' => 'settings#index', :as => :settings

然后在我的 application_layout 中添加了以下代码

<%= navigation([:games, :new, :previous, :settings]).html_safe %>

根据我对 Rails 的了解, html_safe 应该强制 HTML 正确呈现,但我得到的是这样的:

<ul class="navigation">[&quot;&lt;li class=\&quot;current\&quot;&gt;&lt;a href=\&quot;/games\&quot;&gt;Games&lt;/a&gt;&lt;/li&gt;&quot;, &quot;&lt;li class=\&quot;\&quot;&gt;&lt;a href=\&quot;/new\&quot;&gt;New&lt;/a&gt;&lt;/li&gt;&quot;, &quot;&lt;li class=\&quot;\&quot;&gt;&lt;a href=\&quot;/previous\&quot;&gt;Previous&lt;/a&gt;&lt;/li&gt;&quot;, &quot;&lt;li class=\&quot;\&quot;&gt;&lt;a href=\&quot;/settings\&quot;&gt;Settings&lt;/a&gt;&lt;/li&gt;&quot;]</ul> 

那么我是做错了什么还是插件做错了什么?我知道这个插件是在 2.x 天内写回来的,据我所知,它处理 HTML 的方式有点不同,但我只是知道得不够。

I am trying to build my first Rails application and I'm using Ryan Heath's navigation_helper plugin to give me the current class in my navigation. I built my named routes as follows:

match 'games' => 'games#index', :as => :games
match 'new' => 'games#new', :as => :new
match 'previous' => 'games#previous', :as => :previous
match 'settings' => 'settings#index', :as => :settings

Then in my application_layout I added the following code

<%= navigation([:games, :new, :previous, :settings]).html_safe %>

From what I know of Rails the html_safe should force HTML to be rendered properly, but instead what I get is this:

<ul class="navigation">["<li class=\"current\"><a href=\"/games\">Games</a></li>", "<li class=\"\"><a href=\"/new\">New</a></li>", "<li class=\"\"><a href=\"/previous\">Previous</a></li>", "<li class=\"\"><a href=\"/settings\">Settings</a></li>"]</ul> 

So am I doing something wrong or is the plugin doing something wrong? I know that the plugin was written back in 2.x days which from what I know handled HTML a bit differently, but I just don't know enough.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

欢你一世 2024-12-10 01:26:59

您可以使用 raw() 方法来避免转义:

<%= raw(navigation([:games, :new, :previous, :settings])) %>

You can use raw() method to avoid escaping:

<%= raw(navigation([:games, :new, :previous, :settings])) %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文