【问题标题】:multiply symbol in a .sum method Rails gives errors.sum 方法中的乘法符号 Rails 给出错误
【发布时间】:2016-03-07 23:13:27
【问题描述】:

我正在使用 chartkicks 创建此柱形图。我几乎陷入困境并且没有选择。

<div class="col-md-3 chart-box">
      <%= column_chart current_user.transports.map{|t|
      { name: "Co2 flight", data: current_user.transports.group_by_year(:created_at).sum(:transport_flight_km) }} %>
              </div>

问题是我必须乘以

:transport_flight_km 

* 0.1404

暂时将其显示为一列(稍后将添加更多内容)。 我无法进行这种乘法运算,并且轨道会根据我的计算位置向我抛出各种错误。

如果我这样做

<%= column_chart current_user.transports.map{|t|
      { name: "Co2 flight", data: current_user.transports.group_by_year(:created_at).sum(:transport_flight_km * 0.1404) }} %> 

Rails 向我抛出了这个错误,这是有道理的

undefined method `*' for :transport_flight_km:Symbol  

如果我这样做:

<%= column_chart current_user.transports.map{|t|
      { name: "Co2 flight", data: current_user.transports.group_by_year(:created_at).sum(0.1404 * :transport_flight_km )}} %>

Rails 给了我这个错误

:transport_flight_km can't be coerced into Float

如果我这样做

<%= column_chart current_user.transports.map{|t|
      { name: "Co2 flight", data: current_user.transports.group_by_year(:created_at).sum("0.1404" * :transport_flight_km )}} %>

我收到此错误:

no implicit conversion of Symbol into Integer

谁能告诉我如何在这行代码中进行计算?

提前致谢 大堤

【问题讨论】:

  • 调用一个返回数值而不是使用该符号的方法。你不能乘以一个符号。

标签: ruby-on-rails ruby charts chartkick


【解决方案1】:

只要把它变成一个字符串:

.sum("transport_flight_km * 0.1404")

【讨论】:

  • 天啊……这太棒了,太简单了,我应该弄清楚 :) 谢谢@smathy
猜你喜欢
  • 2023-03-18
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2015-02-21
相关资源
最近更新 更多