【问题标题】:Interpolating a HTML file in Ruby在 Ruby 中插入 HTML 文件
【发布时间】:2020-01-30 03:55:10
【问题描述】:

我正在制作一个读取带有“#{}”标签的 HTML 文件的 Ruby 程序。这是 HTML 页面的内容:

<html>
<body>
<h1>#{"Hello, World!"}</h1>
</body>
</html>

这是我正在使用的 Ruby 代码:

file = File.open("Path/to/file", "r")
content = file.read
puts content.match(/./om)

如何更改代码以插入内容,以便将网页中的#{} 替换为适当的值?

【问题讨论】:

  • 最优雅的方法是什么?我正在制作一个运行像 PHP 一样的 Ruby 代码的 Ruby Web 服务器

标签: html regex ruby


【解决方案1】:

最优雅(也是默认)的方法是使用模板语言。 Ruby 自带的 ERb 可以解决你的问题:

模板.erb:

<html>
<body>
<h1><%=@greeting%></h1>
</body>
</html>
require 'erb'

template = File.read('path/to/template.erb')
@greeting = "Hola, mundo"
ERB.new(template).result(binding)

【讨论】:

  • OP 没有要求模板语言,他们正在尝试自己做。
  • 在评论中他询问最优雅的方式来做到这一点,并没有明确说明他想构建自己的模板语言。
  • 是的,我想。很难知道 OP 想要什么,尤其是考虑到这句话“我正在制作一个运行 Ruby 代码的 Ruby Web 服务器”
  • 那句话让我觉得OP只需要一个解决方案,而不是他们想从头开始做所有事情
  • 如何在有界的情况下打印?
猜你喜欢
  • 2023-04-02
  • 2013-07-23
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-04
  • 2013-04-27
相关资源
最近更新 更多