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
这将解决您原来的问题,但它肯定不是解决您想要做的事情的最佳方式。 将以下内容添加到您的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数组 ,还要阅读有关活动记录关联的Rails指南。 此外,在将来尝试首先发布代码片段,以便为您的问题提供更多上下文。
- 为什么我不能加载Nokogiri?
- 运行一次性任务以在Ruby中将值输入数据库
- Gem的模型遗失了
- MongoMapper(或任何其他Mongodb适配器)是否有类似“accepts_nested_attributes_for”的方法?
- Word Document.Save在从Ruby或VBS通过OLE调用时忽略编码
- Ruby Webrick HTTP身份validation
- 如何将before_filter应用于Rails 3.2.11中每个控制器的每个动作?
- 在处理完输入后,如何在不退出的情况下将STDin传递给IRB?
- “SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败”