1

我有一个 RoR 应用程序,它在多个表之间进行连接并将结果集作为 json 返回给客户端。我需要帮助来弄清楚如何只发送唯一的列值。例如,如果您有一个员工和部门表,则对两者进行连接将返回:

Physics   John   
Physics   Joe
Math      Charlie
Math      Sheila

如何将数据返回给删除重复值的客户端,例如

Physics => { John, Joe }
Math = > { charlie, Sheila }

我想减少通过网络发送不必要的重复数据。

有什么想法吗?

编辑:

将其更改为此(在堆栈溢出时发现它)并且它起作用了:

@lec_hash = @lectures.inject({}) do | result, row |
    result[row.subject] = [] if result[row.subject].nil?
    result[row.subject] << row.name
    result
end
4

1 回答 1

0

准备一个哈希,其中键是您的主题名称,值是选择主题的名称数组

hash = Hash.new {|h,k| h[k] = [] }
result.each do |row|
  hash[ row.subject]  << row.name
end

假设result是 AR 记录的数组,模型具有subjectname(人名)属性(列)

然后转换hash.to_json

于 2012-09-27T06:03:15.617 回答