Rails slim 将 html 渲染为文本
Posted
技术标签:
【中文标题】Rails slim 将 html 渲染为文本【英文标题】:Rails slim rendering html as text 【发布时间】:2021-01-05 00:01:14 【问题描述】:我正在使用 Rails 6 和 rails-slim
当我尝试使用以下代码呈现 rails 表单时:
== form_for model, url: messages_path, method: :post do |f|
= f.text_field :body
= f.submit
它将原始 html 输出为输入标记的字符串,即此 html 在浏览器中显示为字符串,而不是实际呈现输入/按钮:
<input type="text" name="message_thread_message[body]" id="message_thread_message_body" /><input type="submit" name="commit" value="Create Message" data-disable-with="Create Message" />
当我使用开发人员工具检查元素时,我可以看到表单的其余部分呈现为正确的 html 元素。
苗条的 gem 版本是:
苗条 (4.1.0) 超薄导轨 (3.2.0)我是否错过了任何配置步骤?
【问题讨论】:
不应该是= form_for model
(而不是==
)吗?
感谢@SebastianPalma。我也试过了,但结果还是一样
您是在渲染局部吗?如果是这样,您使用的代码是什么?
【参考方案1】:
没有 HTML 转义的输出 ==
与单个等号 =
相同,但不通过 escape_html 方法。参考this
以下应该工作
= form_for model, url: messages_path, method: :post do |f|
= f.text_field :body
= f.submit
【讨论】:
谢谢,我已经尝试过了,但不幸的是,它仍然在做同样的事情。复制您的 sn-p 并粘贴以确保我 100% 正确 渲染时你必须添加==
for ex == render 'some_partial'
以上是关于Rails slim 将 html 渲染为文本的主要内容,如果未能解决你的问题,请参考以下文章
sh 将rails应用程序中的所有.erb文件转换为.slim