about

I’m glad you found me. My name is xing zhou and I am a developer

blog

to_param修改show页面URL

       一般来说,show路由生成的 url 都是 /XX/:id 类型,但是这种 URL 看起来很不“见名知意”,以 ID 作为标识符也会让用户迷惑,大家看一下我的博客文章的 show 页面 url,已经改成了 blogs/url_name,这是怎么做到的呢?要达到这种需求可以有多种方法,这里只介绍一种最简便的:to_paramRails 的 Action Pack 针对对象使用 to_param 来构造页面 URL,我们看这个方法默认会返回什么irb(main...

耗时统计——benchmark

       在做一些功能时,我们经常要考虑到性能,其中一个非常重要的指标就是耗时,页面刷新半天打不开,或者执行一段代码用了很长时间,但是不确定卡在了那里,之前我会自作聪明,在 console 里这样做:def a
 start_time = Time.now
 # 执行那段代码
 puts Time.now - start_time
 end
        嗯,自以为好像很牛X的样子,但是实际上却是:弱爆了!因为 ...

ruby的Timeout

       在现实工作中,我们经常会遇到一些问题,比如说发送一个 http 请求半天得不到响应,或者抓取一个页面迟迟得不到结果,程序可能会因为这种“超时”情况一直卡住,ruby 提供了一个 Timeout 模块,可以很好的帮我们处理这种问题。要使用 Timeout 模块,我们需要手动 require进来,然后可以直接使用 timeout 方法,请看下面的例子:#!/usr/bin/ruby
 require 'timeout'
 
 begin...

ruby执行系统命令

       众所周知 ruby 是一门脚本语言,我们可以用它很方便的写一些系统脚本,比如最近网上沸沸扬扬的黑客曝光好莱坞明星图片(你懂的),在别人还在各种求种子的时候,我们可以写了一个抓取脚本先分析出图片的地址然后全部 wget 下来,今天给大家分享如何在 ruby 脚本中执行系统命令。1. 最简单常用的,使用 ` 符号, ` 符号就一般在键盘的左上角 ESC 键的下方,把需要执行的命令放在 ` 中间即可,`把字符串当做外部程序命令来运行,并以字符串形式返回命令的输出...

定时任务whenever

今天给大家分享一个 gem: whenever,whenever 让开发者简便的创建、部署定时任务。安装:$ gem install whenever
 或者在 Gemfile 里添加gem 'whenever', :require => false
 然后在项目中执行:wheneverize .
 就在 config 目录下生成一个 schedule.rb 文件。whenever 有三种任务类型:command、runner 和 rake...

Linux crontab 命令格式与详细例子

       上次我们分享了如何通过 whenever 创建 rails 的定时任务,这次我们一起来详细看一下 linux crontab 的命令格式。基本格式 :*  *  *  *  *  command(分 时 日 月 周 命令)      第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令crontab文件的一些例子:30 21...

ruby输出多背景、颜色、效果的字符串

       很多开发者在网上问这样的问题:在写一些脚本时,为了让输出更加醒目,在 puts 一些提示语句时能否加上颜色?比如红色的“抓取失败”,绿色的“开始抓取”等等,下面我总结了一些方法,给大家分享一下。1. gem colorized       colorize 是一个 ruby 字符串类的扩展,它使用 ANSI 转移序列。提供了一些方法来设置字符串的颜色、背景色、效果,安装方法和其它 gem 一样,执行 gem install colorize,然后在脚本中 ...

rails中的law of demeter

       首先解释一下什么是 law of demeter,law of demeter 中文翻译为“迪米特法则”,属于设计模式之一,通俗的理解就是:一个对象模型只应该和它关联的对象“通信”,而不应该和关联的对象的关联对象“通信”,或者说一个对象和其他对象“联系”越少越好,它的目的是降低程序的耦合度。我们的rails 中经常会触碰到这一原则,举个例子:class Blog < ActiveRecord::Base
 belongs_to :use...

ruby搞yaml(附赠一个方法)

       在 Rails 中,配置文件大多都为 yml 格式,同 xml、json 一样,yml 是一种文件格式,它以缩进来表示层级关系,博主认为其可读性要强于 xml 和 json,我们在写一些脚本时经常会用到它,今天我们来分享一下 ruby 如何生成 yaml、解析 yml 等常见操作。       ruby 内置了一个库 YAML,直接引入它即可,有了它处理 yaml 文件就非常容易了。如下示例文件:test.yml# test.yml
 person...

动态定义调用方法

       我们知道,在 ruby 中调用方法很简单,类似于其它编程语言,只要在对象上使用(.)即可,比如:@user.play,即是调用了 @user 对象上的 play 方法,事实上 ruby 提供了一种动态调用方法的方式,send,举个例子:class MyClass
 def my_method(my_arg)
 mr_arg * 2
 end
 end
 # 常规调用方法
 obj = MyCl...

contact

want to talk something or join Thoughtworks, send email to Edward_mjz@hotmail.com