ruby - Rails 正在使用 .html_safe 转义视图中的 erb 行
问题描述
这是我在 Stack Overflow 上的第一篇文章,我猜这不是我的开发者旅程中的最后一篇。
在我的 Rails 应用程序中,将作为文本插入的 html 内容转换为实际 html 时遇到问题。它适用于 html,除了使用 erb 的一行。
查看节目
show.html.erb
...
<%= render 'profitability_row_element', simulation: @simulation, type: "gross" %>
...
对应于模拟的显示,我们将所述模拟作为局部传递给我们的局部
部分的
_profitability_row_element.html.erb
<p class="text-xs">
<%= tooltip_formula(["Prix d'achat", "+", "Frais de notaire"]).html_safe %>
</p>
为了给你一些上下文,这个想法是在下面显示一些带有相应公式的指标,然后当用户将鼠标悬停在公式的元素上时(例如“Prix d'achat”),它将显示计算中使用的值
帮手
simulations_helper.rb
module SimulationsHelper
def tooltip_formula(formula_elements_array)
formula_elements_array.map!.with_index do |formula_element, i|
i.even? ? tooltip(formula_element) : formula_element
end.join(' ')
end
def tooltip(formula_element)
tooltip = 'class1'
tooltiptext = 'class2'
"<span class='#{tooltip}'>
#{formula_element}
<span class='#{tooltiptext}'>
<%= simulation.#{convert_formula_element_to_corresponding_simulation_variable(formula_element)} %>
</span>
</span>"
end
end
它适用于 html 内容(内容#{formula_element} 正确显示并且类#{tooltip} 和#{tooltiptext} 正确应用),但是它似乎确实逃脱了erb标签,我肯定在这里做错了但是我无法弄清楚。
我想 <%= simulation.house_rent_amount_per_year %> 显示它的价值
任何可以将此 erb 转换为 html 的线索?
先感谢您,
Mth0158
解决方案
它似乎确实逃脱了 erb 标签
发生这种情况是因为您在帮助程序中呈现 HTML。将整个"<span ...
代码移动到 erb 部分。它应该如下所示:
<p class="text-xs">
<% ["Prix d'achat", "+", "Frais de notaire"].map.with_index do |formula_element, i| %>
<% if i.even? %>
<span...
<% else %>
<%= formula_element %>
<% end %>
<% end %>
</p>
推荐阅读
- email - 邮件服务器的正确 FQDN 和 PTR 记录?
- javascript - 使用 for 循环将偶数和奇数推送到各自的数组
- odoo - 从名称产品中分离属性(Odoo 14)
- sql - 如何将内部窗口函数放在子查询中
- google-cloud-firestore - SwiftUI - 解释 View 中数据刷新时 EnvironmentObject 与 ObservableObject 行为的差异
- python - 我的 keras.utils.Sequence 返回 3 个数组,我无法将其放入 model.fit
- c# - 尝试从部分视图进行 ajax 调用后更改文本框
- oracle - 设置 Oracle SSL 侦听器
- html - 如何避免 CSS 继承以保持线性渐变背景颜色完整?
- c++ - 如何创建一个接受两个变量的构造函数,但其中一个是可选的。C++