Rails如何删除数组中的最后一个逗号?

时间:2012-02-25 22:55:39

标签: ruby-on-rails ruby ruby-on-rails-3

在我的JSON视图中,我有:

[
<% @sog.each do |kon| %>
{"id":"<%= kon.id %>","titel":"<%= kon.titel.force_encoding("UTF-8") %>","url":"<%= kon.photo.image.url %>"},
<% end %>
]

如何删除循环中的最后一个逗号? JSON无法正常工作,因为最后有一个逗号。

2 个答案:

答案 0 :(得分:3)

有几个选项,但一个是使用each_with_index并添加逗号iff它不是最后一次迭代。

您可以collect使用join JSON字符串,","使用{{1}},无需检查。

或者创建一个将对象序列化为JSON的方法,避免视图层中的所有繁忙工作。

答案 1 :(得分:0)

另一种有意义且最简单的方法是

@json_obj = []

@sog.each do |kon|
   @json_obj << {"id":"kon.id",
                 "titel":"kon.titel.force_encoding('UTF-8')",
                 "url":"kon.photo.image.url"
                }

您不再需要担心逗号了。希望这可以帮助。