现在我正在创建一个数组并使用:
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
谢谢!
答案 0 :(得分:23)
或使用:
<%= raw(@comments.to_json) %>
以逃避任何html编码字符。
答案 1 :(得分:13)
我建议您在帮助程序中编写该代码。然后只需使用.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) %>
答案 2 :(得分:6)
<%= @comments.to_json %>
也应该做到这一点。