我正在尝试创建一个数组并向其添加多个对象,但我不知道如何开始。请帮助。
- 编辑
这是我到目前为止所做的。
@players = @user.players
@team = Team.all
@players.each do |player|
@t = @team.find(player.team_id)
@teams = Array.new
@teams.push(@t)
end
答案 0 :(得分:2)
您的代码段中发生了很多事情,使其无效(或者至少是不必要的)。你不应该在循环的每次迭代中创建一个新数组。有些事情应该会好得多:
@players = @user.players
@teams = Array.new
@players.each do |player|
@teams << Team.find(player.team_id)
end
这将解决您原来的问题,但它肯定不是解决您尝试做什么的最佳方式。将以下内容添加到您的Player
和User
模型中:
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 arrays的文档,还查看Active Record Associations的Rails指南。此外,在将来尝试首先发布代码片段,以便为您的问题提供更多上下文。