Rails中返回带html fragment的json数据

有些时候,我们需要返回带html片段的JSON数据,这个在rails中,可以通过如下两种方式:

方法一

def show
render json: {
status: 'ok',
html: render_to_string(partial: "/path/to/partial", locals: {})
}
end

render_to_string是Rails内建的方法,render方法是基于这个方法的,下图是Rails 的render stack

方法二

render json template

def show    
end

# show.json.erb

{
  metadata: <%= metadata%>,
  status: 'ok',
  html: <%= render partial: 'partial_name' %>
}

同时Rails 返回JSON数据也是支持Layout的

app/views/layout/application.json.erb:

{
  metadata: <%= metadata%>,
  status: 'ok',
  html: <%= yield %>
}
原文地址:https://www.cnblogs.com/kamechen/p/2569621.html