javascript - Rails 从 Rails 2 升级到 Rails 3 后如何修复 HTML 转义

标签 javascript ruby-on-rails ruby-on-rails-3 escaping

我有一个使用 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/

相关文章:

ruby-on-rails - 从 Rails 3.2 升级到 Rails 4

ruby-on-rails - 在 Rails 4 中引发自定义错误

Ruby:Rails:使用哪个版本的 gem?

ruby - 您如何处理 Active Admin 资源中的序列化编辑字段?

javascript - Bootstrap TokenField下拉项在选择时闪烁

javascript - 存储完成操作后要执行的任意操作

ruby-on-rails - 在本地主机 :3000? 上启动 Rails 服务器后要做什么

javascript - 使用javascript的幻灯片动画

javascript - Jquery 验证自定义 css 复选框

javascript - 在移动版 Safari 中隐藏/显示内联 SVG 时遇到问题