我试图显示输入的所有记录的浮点数的总和,但我似乎不知道该怎么做。这是情况。我的应用程序(纯粹用于学习目的)有一个用户可以注册游泳者个人资料,并且在这样做时,可以为游泳者记录游泳。游泳属于游泳者,游泳者有很多游泳。
// swims_controller.rb
// SwimsController#index
@swims = @swimmer.swims.all
@distances = @swimmer.swims.all(:select => "distance")
在此操作的视图中,我遍历游泳以获取游泳日期和游泳距离。然后我添加了这行不起作用
<p>Total distance: <%= @distances.each { | x | x.distance.inject(:+).to_f } %></p>
我得到的错误是“5500.0:Float 的未定义方法‘注入’”(5500.0 是为该游泳者记录的第一次游泳的距离)。我使用了基于其他线程的注入(例如,如何对 Ruby 中的数字数组求和?)但很明显,我遗漏了一些东西。实际上,我可能遗漏了很多东西,因为我想将这个 #total_distance 方法放在游泳模型(swim.rb)中,但是当我尝试这样做时,我无法让控制器识别该方法我在别处读到,由于“缓存”问题,视图不应尝试访问模型中定义的方法。
任何人对此的有用指导都会有很大帮助。似乎是一件非常基本的事情,但由于某种原因,在无数次搜索查询之后,我发现关于此类问题的指导很少。谢谢!