www.appflying.com,iPhone and iPad, top Apps, drop price.
‘r4r’ 标签下的文章
十一 17

ruby for rails 摘录

2008年十一月17日,星期一,上午 7:07 | 分类:RailsNote | 给我留言 |

class, module, def 标志着切换到新的 self, main 是默认的 self 对象用来引用自己的专门术语。self 作为消息默认的接受者,如果消息接受者是 self ,可以省略接受者和圆点。 如果存在同名的方法名和变量,而且你使用裸词标识符,那么变量具有优先权。要强制 Ruby 将标识符当作方法名,你必须使用 self.talk 或者用参数列表为空的 talk() 来调用方法。 有一个场合,即使是发送消息给当前的 self,也必须使用完整的“对象 圆点 消息”记法,那就是在调用写方法的时候。因为 Ruby 总之将序列“裸词=值”解释为对局部变量的赋值。为了调用当前对象的 venue= 方法,必须显示的给出 self。 private 和 protected 的区别 私有方法意味着该方法不能使用显式的接收者来调用。Ruby 认为你想要发送消息给当前对象 self。所以仅当 self 是一个可以响应消息的对象时,该消息才有对象接收。那啥时候 self 才会是类的实例呢?当执行类的任何一个实例方法时。所以看如下代码 class Baker def bake_cake @batter = [] pour_flour add_egg return Cake.new end def pour_flour @batter.push(Flour.new) end [...]

(阅读更多精彩内容...)
十一 16

ruby for rails 摘录

2008年十一月16日,星期日,上午 9:09 | 分类:RailsNote | 给我留言 |

模块没有实例,模块被混含在类中。这样类的实例可以调用定义在模块中的实例方法。混含操作由 include 语句实现。require 或 load 时,加载的内容放在引号里。但是使用 include 时,不使用引号。 module Stacklike attr_reader :stack def initialize @stack = Array.new end def add_to_stack(obj) @stack.push(obj) end def take_from_stack @stack.pop end end require “stacklike” class CargoHold include Stacklike def load_and_report(obj) pust obj.object_id add_to_stack(obj) end def unload take_from_stack end end 使用名称作为类名,使用形容词作为模块的名。上面的例子演示了如何进一步发挥模块的作用。 当给对象发送它不理解的消息的时候,会触发内建方法 method_missing 调用。 class Bicycle attr_reader :gears, :wheels, :seats def [...]

(阅读更多精彩内容...)
十一 16

ruby for rails 摘录

2008年十一月16日,星期日,上午 5:05 | 分类:RailsNote | 给我留言 |

实例变量使得单个对象可以记忆状态。实例变量的名字以@开头。实例变量仅仅对于它所属的对象来说是可见的。在一个特定类的某一方法中初始化的实例变量,与同一个类的其他方法定义中引用的同名实例变量是同一个。 class c def inst_var_init(value) puts “Setting an instance variable…” @ivar = value end def inst_var_report puts “Inspection the value of the instance variable…” puts @ivar end end 初始化对象状态 class c def initialize(venue, date) @venue = venue @date = date end def venue @venue end def date @date end end =号方法和语法糖衣,Ruby允许定义以等号结束的方法。另外当解释器看到一个裸词后面有等号的时候。它会自动忽略等号前面的空格。从而得到一条单独的消息,例如 price= 。 class Ticket [...]

(阅读更多精彩内容...)
十一 10

ruby for rails 摘录

2008年十一月10日,星期一,上午 7:07 | 分类:RailsNote | 给我留言 |

def all @order = params[:order] || “number” sort_proc = case @order when “author” then lambda {|r| [r.user.name.downcase, r.number]} when “status”, “title”, then lambda {|r| [r.send(@order).downcase, r.number]} when “number” then lambda {|r| -r.number} end @rcrs = Rcr.find(:all).sort_by &sort_proc end 下面是一个 respond_to? 和 send 方法的例子 request = gets.chomp if ticket.respond_to?(request) puts ticket.send(request) else puts “No such information [...]

(阅读更多精彩内容...)
  • 信息发布
macbook pro



关于 里克
里克:本名李玮,全职SOHO开发,技术咨询
邮件:hi@liwei.me
QQ:5175486
MSN:liwei78@live.com
05年开办公司,从事企业网站开发及维护,后从事社会化搜索引擎研发,08年底至今从事sns开发。近期专注Rails3,工作笔记整理及iphone开发学习。

狂爱Fm系列游戏。喜欢研究电影。关注IT新闻。写原创剧本和使用the movies拍摄短片,剪辑能力极强。美剧迷。狂热的英超曼城球迷。32岁的东北人。