現在、配列を作成して使用しています。
render :json => @comments
これは単純なJSONオブジェクトには問題ありませんが、現在、私のJSONオブジェクトにはいくつかのヘルパーが必要であり、すべてが壊れており、コントローラーにヘルパーインクルードが必要であるため、解決されるよりも多くの問題が発生するようです。
では、このJSONオブジェクトをビューで作成するにはどうすればよいでしょうか。ヘルパーを使用するときに、何かをしたり、何かを壊したりすることを心配する必要はありません。今のところ、コントローラーでJSONオブジェクトを作成する方法は次のようになりますか?ビューに移行するのを手伝ってください:)
# 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
ありがとう!
そのコードをヘルパー自体に記述することをお勧めします。次に、配列で.to_json
メソッドを使用します。
# 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) %>
または使用:
<%= raw(@comments.to_json) %>
hTMLエンコーディング文字をエスケープします。
<%= @comments.to_json %>
トリックも行う必要があります。