ruby-on-rails - respond - rails api serializer
Renderizar html parcial en JSON JBuilder (3)
Debe especificar el formato parcial, ya que Rails buscará de forma predeterminada el formato actual (json). Por ejemplo:
render partial: ''students/student.html.erb''
Estoy renderizando JSON de algunos estudiantes usando JBuilder en Rails 4. Quiero que cada estudiante tenga un atributo "html" que contenga el HTML parcial para un alumno dado:
[
{ html: "<b>I was rendered from a partial</b>" }
]
He probado lo siguiente:
json.array! @students do |student|
json.html render partial: ''students/_student'', locals: { student: student }
end
Pero esto me da:
Missing partial students/_student with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :haml]}.
Los parciales de los raíles usan un guión bajo en el nombre del archivo pero no en el código cuando se hace referencia a él como una cadena (dependiendo de cómo los esté cargando, por supuesto). Usualmente un parcial llamado posts / _post.html.haml será referenciado en código como render: partial => ''posts / post''
Debe especificar el formato parcial.
json.array! @students do |student| json.html render(student, formats: [:html]) end