0

我试图弄清楚如何用 Rabl 渲染html。我有一个没有对象的 html 部分,到目前为止,我所看到的只是带有对象的部分示例。如果我在没有对象的情况下尝试它,它只是(显然)抛出一个错误。

我得到的最接近的是:

node(:content) do
    partial("api/v1/api/partials/tips")
end

这是 Rabl 的文档

更新

我最终只是在下面这样做。很明显吧?出于某种原因,当我第一次尝试它时它不起作用。因此,对于仅在 API 响应中发送 HTML,这很有效。

  def tips
    render partial: "api/v1/api/partials/tips"
  end
4

2 回答 2

3

例如,在 rabl 视图中,show.v1.rabl您可以使用以下 ( rails 4.1.2) 呈现部分视图:

object @your_object

code :html do
  context_scope.controller.render_to_string(

     # from app/views/
    partial: 'path/to/show.html.erb',

     # locals (if needed)
    locals: { 
      your_object: @your_object
    }

  )
end
于 2014-09-27T20:04:16.273 回答
0

这可以通过在 Rabl 节点内渲染 ERB 模板来实现:

object @user

node(:html_content) do |user|
  @user = user
  template = Rails.root.to_s + '/app/views/api/users/show.html.erb'
  ERB.new(File.read(template)).result(self.binding)
end
于 2013-10-30T15:32:00.927 回答