繁体   English   中英

将多个对象合并在一起的更有效方法

A more efficient way to merge multiple objects together

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

所以我正在尝试创建一个包含多个对象的数组,但首先我需要将两种对象合并为一种,然后将其添加到数组中。 这样做的原因是我可以在视图中循环遍历数组并轻松显示内容。 我正在使用树不同的对象,用户,玩家和团队。 用户通过玩家拥有多个玩家和多个团队。 我需要直观地显示团队对象和播放器对象的信息,但我需要将它们合并到一个对象中并将其插入到数组中。 因此,我将为玩家拥有的每个团队/玩家执行此操作,并将其插入包含所有这些内容的阵列中。

这是我对此的抨击

    array = []
    @user.players.each do |player|
        @user.teams.each do |team|
            if player.team_id == team.id
                array << UserTeam.new(:id => team.id,
                                      :name => team.name,
                                      :tag => team.tag,
                                      :description => team.description,
                                      :recruiting => team.recruiting,
                                      :wins => team.wins,
                                      :losses => team.losses,
                                      :t_wins => team.t_wins,
                                      :rating => team.rating,
                                      :role => player.role,
                                      :position => player.position)
            end
        end
    end
    @teams = array

这有效,我得到了我想要的结果,但我确信这是一种非常低效的方法。 这会是一个更好的方法吗? 任何人都可以帮助一个新手铁路开出去吗?

1 个回复

很难确定为什么你实际上把所有东西都集中在一个对象中。 你打算怎么做结果? 如果这仅用于显示目的,您可以使用更简单,更优雅的东西。

假设

楷模

class User < ActiveRecord::Base
  has_many :players
  has_many :teams, through: :players
end

class Player < ActiveRecord::Base
  belongs_to :user
  belongs_to :team
end

class Team < ActiveRecord::Base
  has_many :players
end

调节器

@players = @user.players.includes(:team)

视图

<table>
  <thead>
    <tr>
      <th>Team Id</th>
      <th>Team Name</th>
      <!-- other team columns -->
      <th>Player Role</th>
      <th>Player Position</th>
    </tr>
  </thead>
  <tbody>
  <% @players.each do |player| %>
    <tr>
      <td><%= player.team.id %></td>
      <td><%= player.team.name %></td>
      <!-- other columns -->
      <td><%= player.role %></td>
      <td><%= player.position %></td>
    </tr>
  <% end %>
  </tbody>
</table>
1 在C#中将多个2 xml文件与同一模式合并在一起的最有效方法是什么?

我有几个相当大的XML文件,表示从第三方供应商使用的系统导出的数据。 我在每个XML文件的2,500条记录中砍掉结果,因为文件变得庞大而且难以管理。 但是,第三方供应商要求我将所有这些XML文件合并到一个文件中。 这些XML文件有78个,总大小超过700MB! 疯了,我知道......那 ...

2009-09-10 14:38:05 2 1547   c#/ xml
3 ffmpeg:无法将有效的mp4和mp3合并在一起

我尝试合并2个文件1个mp4视频+ 1个mp3文件(都可以,并且可以在chrome或firefox中播放) 我跑: 给我那个错误: 当我尝试从mp4提取JPEG时出现相同的问题(mp4有效,可以在VLC或Chrome或Firefow中打开) ...

2018-12-03 14:45:53 0 54   ffmpeg
4 将多个列与Teradata合并在一起

我有10列,它们的值可以是null,也可以是水果的名称。 我想添加另一列,其中包含每行所有的水果。 我使用Concat(column1,column2,...,column10)作为名称。 问题:结果中没有逗号,如果我在连接之前添加逗号,我们将它们放在一起,最后一个单词也是逗号。 ...

6 将多个用户帐户合并在一起的架构

好的,我有一个网站,您可以在其中注册并登录。 您也可以使用您的 facebook、twitter 或 LinkedIn 帐户登录。 用户只能注册一个帐户,这一点很重要。 所以不知何故,如果用户使用不同的方法登录,我想合并用户的帐户。 解决此问题的最佳解决方案是什么? 例如,用户使用他的 Facebo ...

8 在JS中将SVG多个路径合并在一起

我正在使用在react / node中使用SVG的白板应用程序,其中绘制的内容将保存在db中以备将来使用。 我希望能够将多个路径转换为一个路径,因为如果连续绘制画布,则某些路径最终将变得无关紧要,因为它们会被顶部的其他路径覆盖。 这就是为什么将每个单独的路径保存到数据库对我来说没有任何意义。 ...

9 如何使用 for 循环将几个 Python 列表合并在一起

我正在编写一个脚本,以计算 X 值与字典中许多其他值之间的所有欧几里德距离,获得一个浮点数,然后将其转换为列表。 问题是我没有获得包含所有结果的列表,而是获得了许多列表,其中只有一个元素,即我的结果。 我目前的脚本是: 我得到类似的东西: [0.29205348037179407] [0.234 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM