Rails将多个对象添加到空数组

我正在尝试创建一个数组并向其添加多个对象,但我不知道如何开始。 请帮忙。

– 编辑

这就是我到目前为止所拥有的。

@players = @user.players @team = Team.all @players.each do |player| @t = @team.find(player.team_id) @teams = Array.new @teams.push(@t) end 

您的代码段中有很多内容正在使其无效(或者至少是不必要的)。 您不应该在循环的每次迭代中创建新数组。 这方面的事情要好得多:

 @players = @user.players @teams = Array.new @players.each do |player| @teams << Team.find(player.team_id) end 

这将解决您原来的问题,但它肯定不是解决您想要做的事情的最佳方式。 将以下内容添加到您的PlayerUser模型中:

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

然后,为了获得您正在寻找的团队,您可以将代码简化为以下内容:

 @teams = @user.teams 

您应该尝试不仅针对ruby数组 ,还要阅读有关活动记录关联的Rails指南。 此外,在将来尝试首先发布代码片段,以便为您的问题提供更多上下文。