with respond rails practices best ruby-on-rails ruby ruby-on-rails-4 jbuilder

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