【问题标题】:How to render html content with erb tags in rails?如何在rails中使用erb标签呈现html内容?
【发布时间】:2013-10-11 07:25:02
【问题描述】:

我正在编写简单的 cms 引擎,但在动态内容渲染方面存在问题,例如我准备了一些带有 erb 标签和助手的页面内容,我如何在我的视图中评估它们? 谢谢。

【问题讨论】:

  • 你能举个例子来澄清你的问题吗?

标签: ruby-on-rails erb


【解决方案1】:

如果我理解正确,您希望将包含 ERB 标记的 sn-ps 存储在某处,并在运行时在您的 rails 应用程序的真实模板中评估它们。

在这种情况下,我认为您将不得不手动调用 ERB。这并不难:

require 'erb'
name = "Rasmus"
template_string = "My name is <%= name %>"
template = ERB.new template_string
puts template.result # prints "My name is Rasmus"

在这篇精彩的文章中阅读更多内容http://rrn.dk/rubys-erb-templating-system

【讨论】:

  • 谢谢,好文章,但我的模板中有辅助方法和路由链接。
  • 如果您查看ruby-doc.org/stdlib-2.0.0/libdoc/erb/rdoc/… 此处的文档,您可以看到,您可以将用于绑定调用的上下文传递给result。如果你通过this,那么路由和辅助方法应该没有问题。
  • 是的,我已经通过了我的控制器绑定。但是在 link_to 帮助器上得到了奇怪的“nil:NilClass 的未定义方法‘host’”。
  • 我不知道渲染 Rails 模板还涉及到多少其他魔法。您可能必须在 ActionView 中查找所有内容。我想这和你问的完全不同。
  • 我认为这里的诀窍是将template.result(binding) 部分直接放入您的视图中。这样,您可以调用在普通 Rails 视图中可用的每个 viewhelper 方法。
猜你喜欢
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2019-07-08
  • 2021-12-13
  • 2019-01-09
相关资源
最近更新 更多