简体   繁体   English

我应该如何通过Chartkick显示每月生成的票证

[英]How should i show monthly generated tickets through chartkick

I am using rails 4, and I want to show monthly ticket generated through pie charts. 我正在使用rails 4,我想显示通过饼图生成的月票。 Can anybody help? 有人可以帮忙吗?

Schema: 架构:

create_table "tickets", force: :cascade do |t|
t.integer  "store_id"
t.integer  "vendor_id"
t.datetime "ticket_date"
t.datetime "deadline"
t.text     "description"
t.datetime "created_at",                  null: false
t.datetime "updated_at",                  null: false
t.string   "ticket_no"
t.string   "vendor_name"
t.string   "user_id"
t.integer  "issue_id"
t.integer  "category_id"
t.boolean  "completed",   default: false

end 结束

My ticket.rb contains: 我的ticket.rb包含:

def self.category_count(user,category)
 if user.vendor.nil?
 category.tickets.where('store_id = ?', user.store.id)
else
category.tickets.where('vendor_id = ?', user.vendor.id)
 end
end

def self.ticket_count(user,ticket)
 if user.vendor.nil?
  ticket.tickets.where('store_id = ?', user.store.id)
else
ticket.tickets.where('vendor_id = ?', user.vendor.id)
 end
end

view: tickets: 查看:门票:

index.html.erb file is: index.html.erb文件是:

<% data = {} %>
<% for category in Category.all %>
 <% data[:"#{category.name}"] = Ticket.category_count(current_user,category).count %>
 <% end %>
<%= pie_chart(data) %>

I would probably start by moving this into a view helper method such as: 我可能首先将其移至视图帮助器方法中,例如:

def pie_chart_data(user)
  Hash[*Category.all.map { |c| [c.name, Ticket.category_count(user, c).count] }]
end

You could then call this in your view 然后,您可以在视图中调用此

<%= pie_chart(pie_chart_data(current_user)) %>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM