Ruby Rails正在使用.html\u safe转义视图中的erb行

Ruby Rails正在使用.html\u safe转义视图中的erb行,ruby,ruby-on-rails-6,Ruby,Ruby On Rails 6,这是我关于堆栈溢出的第一篇文章,我想这不是我开发过程中的最后一篇 在我的Rails应用程序中,我在将作为文本插入的html内容转换为实际html时遇到问题。除一行使用erb外,它适用于html 查看显示 show.html.erb ... <%= render 'profitability_row_element', simulation: @simulation, type: "gross" %> ... show.html.erb ... ... 对应于

这是我关于堆栈溢出的第一篇文章,我想这不是我开发过程中的最后一篇

在我的Rails应用程序中,我在将作为文本插入的html内容转换为实际html时遇到问题。除一行使用erb外,它适用于html

查看显示

show.html.erb

...
<%= render 'profitability_row_element', simulation: @simulation, type: "gross" %>
...
show.html.erb
...
...
对应于模拟的显示,我们将所述模拟作为局部传递给我们的部分

部分

_profitability_row_element.html.erb

      <p class="text-xs">
        <%= tooltip_formula(["Prix d'achat", "+", "Frais de notaire"]).html_safe %>
      </p>
\u row\u element.html.erb

为了给你一些上下文,我们的想法是在下面显示一些指标及其相应的公式,然后当用户将鼠标悬停在公式的某个元素上(例如“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
simulations\u helper.rb
模块模拟助手
def工具提示\公式(公式\元素\数组)
公式\元素\数组.map!。使用|指数do |公式|元素,i|
i、 甚至?工具提示(公式元素):公式元素
结束。连接(“”)
结束
def工具提示(公式元素)
工具提示='class1'
tooltiptext='class2'
"
#{公式_元素}
"
结束
结束
对于html内容来说,它工作得很好(内容{formula_element}正确显示,类{tooltip}&{tooltiptext}正确应用),但是它似乎确实逃过了erb标记,我肯定在这里做了一些错误,但我无法理解

我想展示它的价值

有没有线索可以将此erb转换为html

提前谢谢大家,

Mth0158

它似乎逃脱了雇员再培训局的标签


这是因为您在助手中呈现HTML。移动整个
语法在您的ERB视图(
.ERB
文件)中是可以理解的,但您正在Ruby中使用它(
.rb
)文件。既然你这么说……这是有道理的,我想它会先传递到我的erb.html文件,然后转换成html。谢谢@alf,由于你的回答,它工作得非常好!
<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>