我想将对象列表呈现为 JSON,但我不想使用 to_json,因为我想呈现非常特定的格式和信息子集。
这是我的观点(foo.json.erb
):
{
"id" : <%= @user.id %>,
"progress" : [
<% @rewards_tapped[0..-2].each do |reward| %>
<%= render "rewardprogress", :reward => reward,
:user => @user %>,
<% end %>
<%= render "rewardprogress", :reward => @rewards_tapped.last,
:user => @user %>
]
}
如您所见,它非常难看,因为我必须单独渲染@rewards_tapped 中的最后一项,以便它在条目后没有逗号(以生成有效的JSON)。
必须有更好的方法来做到这一点,我对 Ruby 有点陌生。有人可以指出我正确的方向吗?