问题描述
我正在开发 Rails 6 应用程序,并且正在尝试为应用程序中的图表设置Chartkick。
我以这种方式安装Chartkick :
-
对于Rails 6 / Webpacker,运行:
yarn add chartkick chart.js
-
然后在
app/javascript/packs/application.js
中添加:require("chartkick") require("chart.js")
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 应用程序及以下版本都是必需的。
仅此而已。
我希望这会有所帮助