Ruby for循环仅使用最后一个值

迈克·霍尔福德

在这里有点生气。

@sport = Sport.find(params[:sport])
@activities = Activity.where("sport_id = ?", @sport)

@activites输出与以下罚款:

<% @activities.each do |a| %>
  <%= a.id %>
<% end %>

显示2个预测值。

我的问题是,当我写(在控制器中)时:

for a in @activities
  @facilities = Facility.where("id = ?", a.facility_id)
end

我的输出为:

<% @facilities.each do |f| %>
  <%= f.id %>
<% end %>

仅返回1个值。它应该显示2个值,因为上述每个活动都属于不同的设施。我认为这与for循环有关,或者当我定义@facilities时,它仅注册一个值。

有什么帮助吗?谢谢 :)

注入的

问题是您要@facilities在循环的每次迭代中重新分配我想您想要更多类似的东西:

@facilities = []
for a in @activities
  @facilities << Facility.find(a.facility_id)
end

最好写成

@facilities = @activities.map {|a| Facility.find(a.facility_id) }

但是,最好是,您已经为:facility定义了一个关联

@facilities = @activities.map {|a| a.facility}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅循环使用最后一个值

ruby 模板中的深度层次查找仅返回最后一个结果

循环仅取最后一个值

表循环仅更新最后一个值

for循环中的lambda仅取最后一个值

在 forEach 循环中,仅显示最后一个值

array.each仅返回Ruby中的第一个值

在Ruby中评估的最后一个表达式

Ruby打印哈希的所有元素,但最后一个

如何获取Ruby中数组的最后一个元素?

使用jquery创建轮播效果-循环仅返回数组中的最后一个值

在函数中使用for循环,仅返回最后一个值

Ruby多行输入,仅一个输入

Ruby:通过另一个类返回一个 ruby 类值

如何使用 Ruby 将一个哈希值附加到另一个哈希值

如何在Ruby中循环一个特定的块

Ruby数组映射并加入一个循环

Ruby Ranges第一个和最后一个问题

Ruby 开关,只显示第一个和最后一个

使用检测 rfid 的外设在 Ruby 中创建一个循环

For 循环总是使用最后一个值 JavaScript - VueJS

具有两个参数(一个具有默认值)的Ruby方法仅接受一个

Ruby:仅弃用一个方法的一个参数的最佳方法是什么?

循环内的onclick值仅适用于表中的最后一个值

Ruby Enumerable:块的第一个真实值

如果Ruby 2.5仅包含一个键/ val对的哈希,则Ruby 2.5删除ruby键的有效方法

使用ruby根据数组的第一个元素组合数组值

使用数组作为内部值创建一个ruby嵌套哈希

如何使用Ruby和SQLite3从数据库中选择一个值?