rails postgres example column array ruby-on-rails json ruby-on-rails-3 actionview

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.