我正在试图弄清楚如何使用Rabl呈现只是 html。我有一个没有对象的html部分,到目前为止我所能看到的只是带有对象的部分的例子。如果我在没有对象的情况下尝试它,它(显然)会抛出错误。
我最接近的是:
node(:content) do
partial("api/v1/api/partials/tips")
end
Here is the documentation for Rabl
更新
我最终只是在下面这样做了。明显对吗?出于某种原因,当我第一次尝试它时,它没有用。因此,对于仅在API响应中发送HTML,这很有效。
def tips
render partial: "api/v1/api/partials/tips"
end
答案 0 :(得分: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
答案 1 :(得分: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