2014-04-17 72 views
-2

我想創建一個數組並向其中添加多個對象,但我不知道如何啓動。請幫助。Rails將多個對象添加到空數組

- 編輯

這是我到目前爲止所。

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

'arr = Array.new,arr << obj1,arr << obj2,...'?您是否閱讀過任何Ruby文檔? – lurker

+0

http://www.ruby-doc.org/core-2.1.1/Array.html –

+0

以及我已經嘗試過arr << obj1但它不起作用 – linogomez

回答

2

在你的代碼片段中有很多事情正在使它不起作用(或者至少是不必要的)。你不應該在循環的每一次迭代中創建一個新的數組。沿此線的東西都要好得多:

@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 arrays,還要閱讀關於Active Record Associations的Rails指南。此外,在未來嘗試發佈代碼片段,以便爲您的問題提供更多的上下文。

+0

@linogomez你試過這個答案嗎? –