我有一个使用 Rails 2.3.8 的 Rails 应用程序。我计划将其升级到3.0.10。为此,我使用了rails_upgrade gem 来更改配置文件。然而升级到新版本后,我可以看到整个布局被搞乱了,并且 html 被转义了。例如,我看到 < 而不是 < 和 > 而不是 > 。最初我怀疑旧的 haml gem 是转义 html 的原因。不过,我更改了 Gem 文件以包含最新的 haml gem 。我正在使用 haml 4.0.5。我缺少什么。这让我很生气。任何帮助表示赞赏。这是因为 gem 不兼容还是某些配置困惑? View 的代码粘贴在此处。
%table.grid.full
%tr
%td.grid.full_panels
-table_panel "Project Listing" do
%table.treetable_trigger
%thead
%tr
%th Name
%th priority
-Project::PLATFORM_OPTIONS.each do |platform_name,platform|
%th=platform_name
%th ICs
%tbody
- for project in @projects
%tr{:class => cycle(:odd, :even), :id => dom_id(project)}
-if project.prj_disabled? #if project is disabled add color to title and disabled notification
%td.nowrap.body_only_tooltip_trigger{:title => project.description+ " <pre><strong>CURRENTLY DISABLED</strong></pre>"}= link_to project.name, project, {:style=>'color:#FF0000;'}
-else
%td.nowrap.body_only_tooltip_trigger{:title => project.description}= link_to project.name, project
-if project.priority == 28
- proj_priority = "Low"
-elsif project.priority == 4
- proj_priority = "Medium"
-else
- proj_priority = "High"
%td= proj_priority
-for platform in Project::PLATFORMS
%td= project.send(platform) ? 'Enabled' : 'Disabled'
%td= pluralize project.exclusions_count, "Exclusion"
=javascript_include_tag 'pages/project_index.min.js'
创建网格面板时 html 被转义。
最佳答案
您正在此行中嵌入 HTML 标记(前置标记和强标记)。
%td.nowrap.body_only_tooltip_trigger{:title => project.description+ " <pre><strong>CURRENTLY DISABLED</strong></pre>"}= link_to project.name, project, {:style=>'color:#FF0000;'}
只需将 .html_safe
添加到包含 HTML 的字符串片段即可。
%td.nowrap.body_only_tooltip_trigger{:title => project.description+ " <pre><strong>CURRENTLY DISABLED</strong></pre>".html_safe}= link_to project.name, project, {:style=>'color:#FF0000;'}
关于javascript - Rails 从 Rails 2 升级到 Rails 3 后如何修复 HTML 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23534151/