1

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

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

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

我试过使用.each_with_index,但我无法让它工作|field, msg, index|- 所以除非你知道如何让它工作,否则它是不可能的。

4

1 回答 1

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
于 2013-10-16T11:25:17.247 回答