Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用联接复制结果_Javascript_Ruby On Rails 4 - Fatal编程技术网

Javascript 使用联接复制结果

Javascript 使用联接复制结果,javascript,ruby-on-rails-4,Javascript,Ruby On Rails 4,我是ruby的新手,我正在尝试使用joins方法来获取属于我表演的表演者。使用以下简单代码(在我的头标签中): 我假设这与存在的执行者数量有关,因此每个执行者都会从数据库生成新的结果。我只是不明白为什么会这样 我做错了什么?我如何避免结果中的重复项。因为连接创建重复值。您必须使用包含来消除重复值 window.performances = <%=raw Performance.includes(:performers).to_json(:include => {:performers

我是ruby的新手,我正在尝试使用joins方法来获取属于我表演的表演者。使用以下简单代码(在我的头标签中):

我假设这与存在的执行者数量有关,因此每个执行者都会从数据库生成新的结果。我只是不明白为什么会这样


我做错了什么?我如何避免结果中的重复项。

因为
连接
创建
重复值
。您必须使用
包含
来消除重复值

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));
window.performances={:performers=>{
:except=>[:创建时间,:更新时间]
}},:except=>[:创建时,:更新时]%>;
警报(JSON.stringify(window.performances));
而且
包括
也避免
N+1
数据库生成查询


查看这些了解更多信息。我希望它能有所帮助

使用
包含
而不是
连接
和check@pavan好的,它可以工作(结果不再重复)。问题是为什么!?
[{"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"}]}, ...
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));