之前已经介绍了一些关于Gruff的基础知识和应用,当然gruff的图表是生成的,当时生产,就存在缓存的问题。那么,我们看一个Gruff缓存的例子:
[b]
1. 安装插件[/b]

sudo gem install gruff 

[b]2. Rails中进行配置 [/b]

Rails::Initializer.run do |config|      config.gem 'gruff', :lib => 'gruff', :version => '0.3.4   end  

[b]3. 在Controller的调用[/b]

class GruffController < PortalController     append_before_filter :load_graph,      :only => [total_orders_graph, :top_sellers_graph]     caches_action :recent_orders_graph, :expires_in => 1.day.to_i   

  def total_orders_graph       orders_graph =  @graph.generate_total_orders       send_data orders_graph.to_blob , :type => 'image/png'    end  

private     def load_graph       @graph = Graphs::ClientGraph.new(@CURRENT_CLIENT)     end  end  

[b]4. 在model中进行cache[/b]

class Graphs::ClientGraph     def initialize(client)       @client = client     end  

  def generate_total_orders       total_orders_graph = Gruff::Bar.new      total_orders_graph.title = "Orders"      dates = working_week       total_orders_graph.labels = Hash[*dates.collect{|date|[dates.index(date), date.strftime("%d %b")]}.flatten]   

    datasets = []       for date in dates         datasets.push(@client.orders.on_day           (date.beginning_of_day,date.end_of_day).count)       end  

    total_orders_graph.data(:total_orders,datasets, '#009900')       total_orders_graph.x_axis_label = 'Date'      total_orders_graph.y_axis_label = "Total"      total_orders_graph.hide_legend = true      total_orders_graph     end  

private     def working_week       days_in_a_week = 7       dates = []       days_in_a_week.times do |day_value|         date = Date.today - day_value.days         dates.push date if date.wday != 0 && date.wday != 6       end      dates.reverse     end  end 

[b]5. Html的显示[/b]

<%= image_tag( url_for(:action => :total_orders_graph, :controller => :client_dashboard), :size => '500x400') -%> 

[b]6. 生成效果如下[/b]

[img]/upload/attachment/131711/0ab5b269-07de-3e92-ac7c-5d6774afcca6.png[/img]

Gruff和缓存图表相关推荐

  1. Gruff: Rails 经典图表生成库简介

    Rails:Gruff进阶应用 [url=http://hlee.iteye.com/admin/blogs/438594]点这里[/url] 有关Gruff如何缓存和提高速度 [url=http:/ ...

  2. CentOS 6.5+Syslog-ng+LogZilla搭建中央日志服务器

    分类: 开源技术 概述 syslog-ng是基于syslog协议的Unix和类Unix系统的开源软件.它基于原来syslogd的模型,扩展了富的过滤功能,灵活的配置选项,添加了重要的功能,如使用TCP ...

  3. 最完整版iOS资源大全中文版

    我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-ios 就是 vsouza 发起维护的 iOS 资源列表,内容包括:框架.组件.测试.App ...

  4. iOS中文版资源库,非常全

    转自:http://www.cnblogs.com/WG-WA/p/5697098.html   目录 入门 库和框架 音频 动画 Apple TV 桥接 缓存 Core Data 图表 数据库 硬件 ...

  5. [绍棠] iOS不错的框架

    入门 Road Map iOS– 开发 iOS 应用从今天开始,苹果指南.★ Lifehacker– 我想写一个 iOS 应用,该从哪里开始? Codeproject– 入门 iPhone 和 iOS ...

  6. Ganglia_简述

    一.Ganglia概述 规模的问题 Ganglia的运行和绝大多数监控系统是不一样的, Ganglia设计最大的考虑就是为了解决规模的问题. 主机即监控系统 基于冗余的结构 Ganglia 假设用户主 ...

  7. iOS 程序员必须收藏的资源大全

    这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Testing )和其他的开源项目,免费的和付费的服务.每个部分中的项目没有先后顺序,均是按照提交 ...

  8. primefaces_通过OmniFaces缓存组件以编程方式缓存PrimeFaces图表

    primefaces 在这篇文章中,您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表. 为了使事情变得简单,我们将使用PrimeFaces 折线图. 对于这种图表,我们可以在页 ...

  9. 通过OmniFaces缓存组件以编程方式缓存PrimeFaces图表

    在这篇文章中,您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表. 为了使事情变得简单,我们将使用PrimeFaces 折线图. 对于这种图表,我们可以在页面中使用<p:c ...

最新文章

  1. 底层原理_自动装箱与拆箱底层原理
  2. latex中erro:extra alignment tab has changed to\cr但列数没错的解决方法
  3. 程序包清单签名验证失败_数字世界的手写签名
  4. Helloworld之Spring依赖注入/控制反转(DI/IoC)版
  5. 保姆级教程--常见的内网穿透有哪几种
  6. 重启tomcat服务器
  7. CCSK认证,提升云安全专业技能,助力职业生涯发展
  8. 香港驾驶执照免试换领的官方收取费用是多少?可以在那些国家与地方使用。
  9. 微商客源如何引流?坚持操作喜马拉雅日引50+粉丝
  10. 一个简单实用的电子称数据接收/解析类(C#)(附简单使用实例)
  11. 脱 PECompact 2.x - Jeremy Collake 壳
  12. arg是什么函数_不定参数函数实现var_arg系列的宏
  13. HTML 基础教程:HTML 基础教程
  14. Facebook陷史上最大危机:近7千页机密文件泄露,Libra恐无缘明年推出
  15. 飞凌嵌入式 全志A40i系列开发板试用体验之开箱
  16. Ubuntu 16.04 安装札记
  17. IDEA添加子Module的正确姿势
  18. 通过新浪云部署Node.js微信小程序商城(不用买域名、不用备案、不用配置https)...
  19. mysql-5.6.25-winx64安装
  20. 转:团队沟通的五大障碍

热门文章

  1. exsi6.7快速克隆虚拟机
  2. 动力网络监控,动环环境监控是什么
  3. 武汉9月6号医疗器械博览会-医疗影像设备展览会|2023武汉国际医疗器械展览会
  4. android wifi的进程,Android wifi简要分析
  5. 罗丹明PEG活性酯 RB-PEG-NHS,罗丹明聚乙二醇活性酯,Rhodamine-PEG-NHS
  6. 143 auth模块
  7. Linux vsFTPd服务详解——vsFTPd基础知识
  8. 倒计时软件开发(原创)
  9. 【区块链】走进web3的世界-对于前端来说,web2与web3的区别
  10. 合肥十中高考2021成绩查询,合肥十中2018高考成绩