Ruby on rails Rails操作sql数据以返回唯一的列值
我有一个RoR应用程序,它在多个表之间进行连接,并将结果集作为json返回给客户端。 我需要帮助弄清楚如何只发送唯一的列值。 例如,如果您有一个employee和department表,则对这两个表执行联接将返回:Ruby on rails Rails操作sql数据以返回唯一的列值,ruby-on-rails,Ruby On Rails,我有一个RoR应用程序,它在多个表之间进行连接,并将结果集作为json返回给客户端。 我需要帮助弄清楚如何只发送唯一的列值。 例如,如果您有一个employee和department表,则对这两个表执行联接将返回: Physics John Physics Joe Math Charlie Math Sheila 如何将删除重复值的数据返回给客户端,例如 Physics => { John, Joe } Math = > { charlie, Sh
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
准备一个散列,其中key是主题名称,value是主题选择的名称数组
hash = Hash.new {|h,k| h[k] = [] }
result.each do |row|
hash[ row.subject] << row.name
end
假设:结果是AR记录数组,模型有subject和nameperson的name attributecolumn
然后将hash.to_json转换为,谢谢你。我尝试了这个,得到了一个TypeError无法将字符串转换为整数。哪一行导致了错误?您确定结果是查询的结果,并且结果数组中的模型的列名为subject和name吗?虽然不是subject和name,但它们是varchar字段。.TypeError无法将字符串转换为整数:app/controllers/experiments\u controller.rb:30:in[]“app/controllers/experiments\u controller.rb:30:在获取实验数据的块中”app/controllers/experiments\u controller.rb:29:在每个“app/controllers/experiments\u controller.rb:29:在获取实验数据”中,这几乎没有帮助。只需编辑您的问题,并包含控制器和模型的代码片段。从你的代码中得到了这个想法。因此,将其标记为已解决。