有些时候,我们需要返回带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 %>}