2016-07-23 78 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) 
相關問題