Chartkick:未定义方法`line_chart'

问题描述

我正在开发 Rails 6 应用程序,并且正在尝试为应用程序中的图表设置Chartkick

我以这种方式安装Chartkick

  1. 对于Rails 6 / Webpacker,运行:

    yarn add chartkick chart.js
    
  2. 然后在app/javascript/packs/application.js添加

    require("chartkick")
    require("chart.js")
    

3安装Groupdate以使用group_by_day方法

gem 'chartkick'

然后运行bundle install

但是,当我将此行添加到仪表板视图中时:

<%= line_chart @products.group_by_day(:created_at).count %>

显示使用@products变量的产品图:

class Admins::DashboardController < ApplicationController
  before_action :authenticate_admin!

  # GET /dashboards
  # GET /dashboards.json
  def index
    @products = Product.all
  end
end

我收到以下错误

undefined method `line_chart'

我想知道我在做错什么。

解决方法

我终于想通了。

这是我修复的方式

问题是我错过了第一个要求:

将此行添加到应用程序的Gemfile中:

gem "chartkick"

然后运行bundle install

最初的误解是因为我正在使用 Rails 6 应用程序,所以我不需要此要求。

我认为此步骤仅适用于 Rails 5 及以下版本,不适用于 Rails 6 应用程序,因为我正在运行yarn add chartkick chart.js。但是事实证明这是不正确的。 Rails 6 应用程序和 Rails 5 应用程序及以下版本都是必需的。

仅此而已。

我希望这会有所帮助