确定ruby循环中json键/值需要逗号的时间?

时间:2013-10-16 11:19:33

标签: ruby-on-rails ruby json activerecord

我正在使用每个循环将我的评论模型的验证错误输出到简单的JSON键值对中。我面临的问题是我在最后一个字符串之后不能有一个尾随逗号,因为jQuery不喜欢狡猾的JSON。

{
<% @comment.errors.each do |field, msg| %>
  "<%= field.downcase %>": "<%= msg %>",
<% end %>
}

上面的代码输出正常,但它会在最后"<%= msg %>"添加一个逗号,导致JSON在解析时失败。

我已尝试使用.each_with_index,但我无法使用|field, msg, index| - 所以,除非您知道如何让它发挥作用,否则它就不行了。

1 个答案:

答案 0 :(得分:3)

您可以使用mapjoin

 <%= @comment.errors.map{|k,v| "'#{k.downcase}' : '#{msg}'"}.join(",") %>

但不仅仅是@comments.errors.to_json有效吗?

PS:使each_with_index:使用哈希:

 hash.each_with_index do |(key,value), index|
     #code code
 end