使用连接重复结果
Duplicate results with joins
我对ruby很不熟悉,我正试图使用join方法来获得属于我的表演的表演者。使用下面的简单代码(在我的head标签中):
window.performances = <%=raw Performance.joins(:performers).to_json(:include => {:performers => {
:except => [ :created_at, :updated_at ]
}}, :except => [ :created_at, :updated_at ]) %> ;
alert(JSON.stringify(window.performances));
这工作得很好,除了我得到所有性能的输出两次而不是一次。像这样:
[{"id":1,"date":"2011-12-10","location":"Malgorzaty i Zygmunta Belza","performers":[{"id":1,"name":"Wojtek Szewczuk"},{"id":2,"name":"Danuta Sroka"}]},{"id":1,"date":"2011-12-10","location":"Malgorzaty i Zygmunta Belza","performers":[{"id":1,"name":"Wojtek Szewczuk"},{"id":2,"name":"Danuta Sroka"}]},{"id":2,"date":"2011-12-10","location":"Malgorzaty i Zygmunta Belza","performers":[{"id":1,"name":"Wojtek Szewczuk"},{"id":2,"name":"Danuta Sroka"}]},{"id":2,"date":"2011-12-10","location":"Malgorzaty i Zygmunta Belza","performers":[{"id":1,"name":"Wojtek Szewczuk"},{"id":2,"name":"Danuta Sroka"}]}, ...
我假设它与存在的执行者数量有关,因此每个执行者从数据库生成新的结果。我只是不明白为什么会这样?
我做错了什么,我怎样才能避免重复的结果
, joins
创建 duplicate values
。您可以使用 includes
来删除重复的值。
window.performances = <%=raw Performance.includes(:performers).to_json(:include => {:performers => {
:except => [ :created_at, :updated_at ]
}}, :except => [ :created_at, :updated_at ]) %> ;
alert(JSON.stringify(window.performances));
和 includes
也避免对 DB
生成 N+1
查询。
参见指南了解更多信息。我希望这对你有帮助!
相关文章:
- 在模板帮助程序中连接两个查询的结果
- 谷歌地图-从连接的结果[1].formated_address中获取结果[0].formated_address
- 如果搜索框为空,则通过sumbitform按钮将iMacro连接到结果
- Javascript:创建循环以连接选中复选框的结果
- 在 Node 中连接数组循环.js glob 结果
- 关闭mongodb连接,并使用多个并行异步查询获得正确的结果
- 如何返回异步连接请求的结果
- RxJS:连接三个承诺,区分结果
- 使用parse.com,我如何连接一个查询以返回两个独立查询的结果.equalTo
- 如何在ajax成功结果中连接achnor标记
- 遍历DOM,然后连接结果文本值
- 用回调连接JSON对象并导出结果
- Gulp -使用少量JS文件连接watchify的结果
- jQuery克隆元素,然后用连接的结果填充隐藏字段,以避免空列表问题
- 使用连接重复结果
- JS数组连接的结果递归扁平化
- Ajax结果似乎连接到以前的结果
- node . js /套接字.io在IE中不返回结果,使用安全连接
- 如何在Meteor JS中连接(或联合)来自两个mongodb集合的find()结果
- 如何使用 jquery 拆分和连接字符串以获得以下结果