我有兩個模型:Draft和Pick。Ruby:調用另一個類的實例方法
草案有一個實例方法@available_players,它有一個草稿中可用的播放器數組。當我在Draft.rb的一個方法中調用@available_players時,我得到了預期的球員數組。
Pick是記錄player_id,draft_id和team_id的模型。我也試圖從草稿中的玩家陣列中移除玩家。當我嘗試訪問Draft.rb內的播放器數組(使用(draft_instance).available_players)時,我得到零。
Draft.rb:
def set_available_players
Player.all.each do |player|
@available_players << player
end
end
def available_players
@available_players
end
Pick.rb
def set_draft_object
@draft_object = Draft.find(self.draft_id)
end
def available_players
@draft_object.available_players
end
內部PICK方法available_players產生零。奇怪的是,如果我打電話給@ draft_object.id,我會得到正確的ID!它只是不會返回非活動記錄值,如「draft_object.available_players」。
@available_players在草稿模型中工作,當我在draft_spec.rb中測試它時,但在pick_spec.rb中測試不到。
我已經通讀了一些實例和類的方法文檔,但我有很多草案的實例,所以我相信我希望它是一個實例方法。
你是完全正確 - 我不包括在這裏我叫我的模型方法 - 但我在另一種方法調用它...問題依然存在。 這裏是一個鏈接到[Github回購](https://github.com/Cheex11/drafter) – user220465
嘗試以上,看看它是否工作(你可以刪除它之後)。如果確實如此,那麼您知道您的問題與正在對「set_available_players」進行的其他調用相關,您可以嘗試進行調試。 –