【问题标题】:cant translate html code in ruby on rails无法在 ruby​​ on rails 中翻译 html 代码
【发布时间】:2018-07-16 15:42:39
【问题描述】:

我是 ruby​​ on rails 的新手。我有 3 个问题

  1. 如何翻译 html 代码

在我设置的控制器中

def index
  @sentence = "Halo<br>worlds";
end

在 index.html.erb 显示我设置

<%= @sentence %>

但显示

Halo<br>world

我是怎么做到的

halo
world
  1. 如何在提交按钮中设置 onclick?我已经尝试像这样设置按钮

但结果不是转到上一页。但除了表格..

  1. 如果验证码在控制器中,我如何制作验证表单。不在模型中

【问题讨论】:

  • 技术上你可以使用html_safe 例如&lt;%= @sentence.html_safe %&gt; 但我不建议这样做,因为将字符串标记为 html 安全可能会导致代码注入,具体取决于您如何使用它。旁注:正确的中断标记应该是&lt;br /&gt;。至于其他问题,这些确实是 3 个非常 独立的问题(rails 渲染、javascript 和服务器端代码),我建议您进行一些研究,然后如果您仍然无法弄清楚,我们会回来并将它们作为单独的问题提出。
  • 我在 Rails 5.1 上测试了你的问题 2,它按预期工作(浏览器返回)。可能是浏览器问题。您应该将其作为一个单独的问题发布。每篇文章不要写多个问题。

标签: ruby-on-rails ruby


【解决方案1】:

Rails 自动转义 ERB 模板中的所有 HTML。为了防止这种转义,您可以使用 Rails ERB 扩展 &lt;%== %&gt;。所以你的情况是:

<%== @sentence %>

请参阅此问题以进行进一步讨论:
What does <%== %> do in rails erb?

【讨论】:

  • 哇。我不知道&lt;%==(虽然老实说现在我这样做让我感到害怕:))我当然更喜欢rawhtml_safe 的显式性质而不是这个小宝石,但谢谢你教我一些东西。
  • 是的。指出在模板中使用任何非转义方法可能是不安全的,这是一个好主意。谢谢。
【解决方案2】:

&lt;%= @sentence %&gt; 替换为以下内容以获得简单的解决方案。

<% @sentence.split("<br/>").each do |word| %>
 <%= word %><br/>
<% end %>

对于第二个 qsn,检查 validateform() 函数中的验证,然后相应地以 true 或 false 响应。

<%= button_to_function "Submit", "validateform()" %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多