1. 约定大于配置 Rails的理念就是约定大于配置,这在ActiveRecord模块里面体现的淋漓尽致,没有hibernate繁琐的mapping xml或者annotation,它是直接根据数据库中表的字段信息配合少量关系定义去实现ORM。 以一个简单的论坛主题贴为例子: class Topic < ActiveRecord::Base belongs_to :user belongs_to :forum has_many :posts end class Post < ActiveRecord::Base belongs_to :topic ...
2008-06-27

Java程序员应该学习Ruby

关键字: ruby
Java v.s Ruby,prototype js v.s jquery, Hibernate v.s iBatis v.s EJB ... 这种语言之争,框架之争,每隔一段时间总会在论坛出现 最近我读到一篇博客:Java程序员应该学习Ruby,非常赞同作者的观点,粗略翻译其中的小部分,希望大家可以减少这种无意义的争论 --------翻译开始分割线-------- Java程序员应该学习Ruby 当然,它不一定是Ruby,你可以挑选其他语言,比如ErLang,甚至JavaScript,只要它和Java有足够的差异就可以了。 因为它能够让你成为一个更好的Java程序员: 1. 学习另 ...
把Rails从2.0.2升级到了2.1,跑了一下JavaEye的单元测试代码,发现了一个很奇怪的错误:某个serialized 属性无法被持久化到数据库,经过一番查找,结果发现是Rails 2.1引入的partial update和dirty object check导致的bug: http://rails.lighthouseapp.com/projects/8994/tickets/360-dirty-tracking-on-serialized-columns-is-broken 在Rails团队解决这个bug之前,一个临时的解决方法是手工调用serialized_name_will_ ...
这篇Ruby每周一测有点特殊,它不是翻译Ruby Quiz上的文章,而是我自己出的一个quiz : 我们在做页面排版的时候,为了避免过长字符串撑开页面,经常需要调用截取过长字符串的方法,rails已经为我们提供了一个方法: ActionView::Helpers::TextHelper#truncate(text, length = 30, truncate_string = "...") 调用很简单: truncate("Once upon a time in a world far far away", 14) # => Once upon a... truncat ...
2008-06-04

Ruby - 条条道路通罗马

关键字: ruby quiz, tmtowtdi
Ruby语言有TMTOWTDI的味道 (There’s more than one way to do it),一些人认为这是一种不好的味道,但我觉得这很好玩,颇有条条道路通罗马意味。我翻译过一些Ruby Quiz的题目,可以看到很多不同的ruby解法,从好玩中学到别人的想法和知识,这很棒。 写这篇文章的一个起因是问答频道的一个题目:ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?,我从其他人的解答中学到了一些string对象以前从来不注意的方法。 第2个原因是一篇博客:21个你应该使用的Ruby小技巧,学到了很多非常棒的小技巧,可以让代码更简练。 第3个原因还是一篇博 ...
2008-05-28

Ruby每周一测 - 方法名缩写调用

关键字: ruby quiz
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。 -----题目分割线----- 命令行操作通常都会支持缩写,这周的Ruby Quiz要实现一个支持方法名缩写调用机制,举具体例子来看,假设一个Mine对象有step, next, stop, exit 4个方法,我们用abbrev操作定义这4个方法可以被缩写调用: class Mine abbrev ...
2008-05-13

Ruby每周一测 - 海龟画图

关键字: ruby quiz, logo
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。 -----题目分割线----- 海龟作图(Logo)是我最早学习的一种编程语言,相信许多我的同龄人都接触过这个语言,正是它让我对编程产生了浓厚兴趣,在rubyquiz上看到这篇利用ruby实现海龟画图的每周一测后,倍感亲切: 引用 想像你控制了一只小海龟在一片沙滩上行动,你可以控制它前进(FORWARD),后退 ...
Rails 2.1快出来了,和2.0相比它又添加了很多新特性,列举一下我认为值得关注的新特性: 1. Has Finder 功能 广受欢迎的Has Finder插件被集成到了2.1的代码中,不过换了种写法,使用named_scope: class User < ActiveRecord::Base named_scope :active, :conditions => {:active => true} named_scope :inactive, :conditions => {:active => false} named_scope :recent, la ...
libmemcached是一个基于C/C++实现的memcached client library,memcached gem给这个library提供了ruby封装,根据原作者的性能评测,它比目前常用的memcache-client gem最多要快150倍。 因为对memcache的操作在rails处理整个http请求中所占时间比例并不多,而且JavaEye网站大部分是做cache读取操作,于是做了2个试验测试一下2者对于提升整个网站的性能到底有多少帮助: 1. 测试访问JavaEye网站的首页,在这个请求中只有一个缓存读取操作,使用ab简单地跑单次请求10000次: 使用memcache- ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。 -----题目分割线----- 以前在国外的影视或者广告中看到出现含字母的电话号码,比如1-800-PICK-UPS (美国UPS快递号码),心中不免有些疑惑:难道国外的电话是可以拨字母的?后来请教国外朋友,才明白这个疑问有点傻有点天真 看一下常见的电话键盘: 每个数字旁边都有3个或者4个字母对应,那么上面 ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。 -----题目分割线----- 我们会在很多地方看到液晶屏样式显示的数字,比方说DVD/微波炉显示时间,常见的实现是利用7个发光二极管来做的: 这周的题目就是完成下面这个class,调用display方法进行液晶数字显示: class LCD def initialize(scale=1) ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。 -----题目分割线----- 这周的题目是找零钱,假设我们需要找给别人39美分的零钱,那么结果将会是(美元的硬币有25,10,5,1这种): >> make_change(39) => [25, 10, 1, 1, 1, 1] 假设我们的硬币种类有10,7,1,那么找14美分的零钱结果将会是: ...
在Ruby里用到对象图导航(Object Graph Navigation)的时候,有时候需要判断对象是否为nil,很常见这样的代码: #显示某个产品的分类名称 product.category ? product.category.name : nil ozmm.org的chris最近介绍了一个好方法,他给这个方法起名叫try(),给Object添加一个try方法: class Object def try(method) send method if respond_to? method end end 这样上面的代码就可以简化成 produc ...
Quake Wang
搜索本博客
我的相册
8c85c3cb-c346-3670-bfb9-e9a635cb785d-thumb
M_100_4350
共 30 张
最近加入圈子
存档
最新评论