Rails每周一题(十七): 从Singleton Class看Ruby的对象模型
我们可能了解Ruby的singleton method概念,它指的是一个对象独有的方法。 下面举个简单的例子,首先来定义一个类: class ExampleClass def foo puts 'foot' end end 然后创建两个实例,并且给第二个实例增加一个singleton method: example1 = ExampleClass.new example2 = Examp ...
Rails每周一题(二十一): Template
当我们在从零开始搭建Rails程序的时候,你是否想过你在做的某些事情其实是在重复自己?比如,配置同样的数据库,安装同样的gem,创建同样的rake task等等。不仅是你,世界上成千上万的人可能在做同样的事情,比如当他们搭建Facebook application或者Google app的时候,大部分人做的大部分初始工作都是相似的。 Rails最重要的的哲学之一是什么?DRY -- Don't ...
Rails每周一题(十五): Rake
简介 简单而言,Rake是一个由ruby编写的build工具。 DSL Rake是由ruby实现的,它的rakefile完全是由ruby语法定义的,所以它是一种内部DSL--基于另一种语言(宿主语言)编写的DSL。 Dependency Based Programming Rake跟ant和make一样,是一种Dependency Based Programming。 ...
Rails每周一题(十八): Association之魔法
要写出优美的rails代码,必须理解和掌握association的机制。它能使代码编写更加简单和方便,更能使你的代码更加简洁和优美。除此之外,也必须了解association背后的实现。有时候,代码的优美不代表一切,甚至代表着背后的丑恶。 Association魔法 先来看看什么是association,以及association如何使你的代码更加简单和优美。 举个rub ...
Rails每周一题(二十二): Engines
Rails世界有无数的各种各样的plugin,极大得助力了Rails应用程序的开发。但plugin的形式较为受限,Rails2.3推出engines plugin,旨在让人们更加方便地共享成果。 它做了什么? The engines plugin enhances Rails' own plugin framework, making it simple to share control ...
Rails每周一题(十六):Evaluation in Ruby
Ruby的evaluation是一个很重要的功能,它可以eval一个字符串或者一个block。在一些适宜的情况下使用它会得到一些“意外”的效果。 常用的eval Ruby常用的evaluation有:class_eval (module_eval),instance_eval ,eval 。 这三种evaluation方法可以在不同的情况下使用: 1. class_eval ...
Rails每周一题(十九): HAML和Sass
在新项目里使用了Haml -- Html Abstraction Markup Language. 较之于Html,个人感觉Haml有这样几个优点: 1. 对于人来讲,Haml更加规范,更加优美. Html对空格,换行等字符的不敏感对于浏览器来说是好事,但对于人来说并不一定是好事.因为这会放任写代码的人忽略代码的规范,忽略代码的结构,忽略代码的优美.而Haml严谨的格式要求,让代 ...