未定义的方法`group_by_day'错误导轨

时间:2016-07-23 03:33:16

标签: ruby-on-rails ruby rubygems chartkick

我已经安装了gem groupdate和gem chartkick并且已经重新启动了我的服务器。我可以在show.html.erb中显示按group_by_day排序的图表。我正在使用postgresql数据库

show.html.erb

<%= @material.current_stock %>
<%= line_chart @material.group_by_day(:updated_at).sum(:current_stock) %>

控制器/ material_controller.rb

def show
   @material = Material.find(params[:id])
end
当我宣布使用类

时,它工作正常
<%= line_chart Material.group_by_day(:updated_at).sum(:current_stock) %>

但是当我用@material替换材料时。

2 个答案:

答案 0 :(得分:0)

它应该与Class方法和数组一起使用,

控制器/ material_controller.rb

def show
   @material = Material.where(id:params[:id])
end

使用此控制器方法更改

答案 1 :(得分:0)

group_by_day适用于整个类或一组对象,没有必要对单个@material对象进行分组

对于您可以使用的全班,

Material.group_by_day(:updated_at).sum(:current_stock)

对于材料组,

@materials = Material.where('your logic')

@materials.group_by_day { |u| u.updated_at }.sum(:current_stock)

但是如果你想为一个对象分组试试,

@material = Material.where('your logic').first

@material.group_by_day { |u| u.updated_at }.sum(:current_stock)