在这里有点生气。
@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] 删除。
我来说两句