尝试从数组构造逗号分隔列表

时间:2010-09-10 18:04:41

标签: ruby-on-rails ruby json

所以我需要这种格式json,到目前为止我有这个

{
 query:'Li',
 suggestions:['Liberia','Libyan Arab','Liechtenstein','Lithuania'],
 data:['LR','LY','LI','LT']
}



 query = params[:query]
 artists = search_object.map{|x| x["artistName"]}
 @all_instances_hash = {}
 @all_instances_hash[:query] = query
  for instance in artists
    @all_instances_hash[:suggestions] = instance
  end

 respond_to do |format|
   format.json { render :json => @all_instances_hash}
 end

我使用此代码尝试制作此格式:

  • 查询来自params,很好
  • 艺术家是所有艺术家名字的数组,也很好
  • 创建哈希以将值放入
  • 循环遍历名称数组并尝试将其置于建议
  • 下的哈希中
  • 问题是有建议的行,似乎只保存最后一个

这是我的json,似乎只保存最后一个

{"query":"James jones","suggestions":"James Brown & The James Brown Orchestra"}

1 个答案:

答案 0 :(得分:2)

待办事项

@all_instances_hash[:suggestions] = artists 

而不是

  for instance in artists
    @all_instances_hash[:suggestions] = instance
  end

在第一种情况下,您将数组分配给特定的哈希字段。第二步 - 您重复为该哈希字段分配不同的字符串。