0

我正在使用 rails 4,我想显示通过饼图生成的月票。有人可以帮忙吗?

架构:

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

结尾

我的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

查看: 门票:

index.html.erb 文件是:

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

1 回答 1

1

我可能会首先将其移至视图辅助方法中,例如:

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

然后你可以在你的视图中调用它

<%= pie_chart(pie_chart_data(current_user)) %>
于 2015-06-04T11:22:14.350 回答