ruby on rails - postgres - rieles: cómo representar un objeto JSON en una vista
rails postgres array where (3)
En este momento estoy creando una matriz y usando:
render :json => @comments
Esto estaría bien para un objeto JSON simple, pero en este momento mi objeto JSON requiere varios ayudantes, lo que lo rompe todo y requiere que el ayudante lo incluya en el controlador, lo que parece causar más problemas que resolver.
Entonces, ¿cómo puedo crear este objeto JSON en una vista, donde no tengo que preocuparme por hacer nada o romper algo al usar un ayudante? En este momento, la forma en que hago que el objeto JSON en el controlador se vea algo así como esto. Ayúdame a migrarlo a una vista :)
# Build the JSON Search Normalized Object
@comments = Array.new
@conversation_comments.each do |comment|
@comments << {
:id => comment.id,
:level => comment.level,
:content => html_format(comment.content),
:parent_id => comment.parent_id,
:user_id => comment.user_id,
:created_at => comment.created_at
}
end
render :json => @comments
¡Gracias!
O usar:
<%= raw(@comments.to_json) %>
para escapar de los caracteres de codificación html.
Te recomendaría que escribieras ese código en un ayudante. Luego simplemente use el método .to_json
en la matriz.
# application_helper.rb
def comments_as_json(comments)
comments.collect do |comment|
{
:id => comment.id,
:level => comment.level,
:content => html_format(comment.content),
:parent_id => comment.parent_id,
:user_id => comment.user_id,
:created_at => comment.created_at
}
end.to_json
end
# your_view.html.erb
<%= comments_as_json(@conversation_comments) %>
<%= @comments.to_json %>
Debería hacer el truco también.