2016-07-23 84 views
0

我已经安装了gem groupdate和gem chartkick并且已经重新启动了我的服务器。我可以在我的show.html.erb上显示按group_by_day排序的图表。我使用PostgreSQL数据库undefined method`group_by_day'error rails

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替换材质时。

+0

你使用'sqlite'数据库吗? – uzaif

+0

@uzaif,我正在使用postgresql – hazimIskandar

+0

有一个Gotch与'Groupdate Gem'。为了解决这个问题,我必须将'created_at'转换为相应的时区。欲了解更多信息[我的问题](http://stackoverflow.com/questions/36178726/rails-group-by-hour-of-the-day-for-created-at-column)。你必须在ActiveRecord类上调用'group-by-day'而不是在对象上。 – VKatz

回答

0

应该与类的方法和阵列工作,

控制器/ material_controller.rb

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

更改与此控制器方法

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) 
相关问题