论坛首页 Ruby版 ruby

关于 ruby(rails)下的 : 的疑惑

浏览 901 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-10-09
最近开始接触的,先看的 agile rails 再看的 programming ruby..  只是迅速的走了一下。 现在回头看有个很疑惑的地方。
    比如:  paginate :contacts, :per_page => 10
                  in_place_edit_for :contact, :name

这样的, 到底什么情况下需要用到那个 : 号在参数前面,  有些有有些没有..晕了。   据我的记忆是, :page 是等于 'page' 的, 是这样简单么- -?
    
那么, paginate :contacts, :per_page => 10  是不是说 paginate的参数带的是 一个string (:contacts)和一个 hash (:per_page=>10) ?

谢谢了!
   
最后更新时间:2007-10-09
看成了诱惑, 晕
偶菜鸟, symbol和字符串的区别好像记得是symbol对相同的内容只有一份copy, 字符串就是可能是多个,可以看object_id, 而且我目前还没碰到在rails里用字符串和symbol互相替代出错的情况, 经验少见笑.
   
0 请登录后投票
最后更新时间:2007-10-15
a = b = 'ruby'
c = d = :ruby
a.object_id == b.object_id  #=>false
c.object_id == b.object_id  #=>true
   
0 请登录后投票
最后更新时间:2007-10-16
paginate :contacts, :per_page => 10
paginate :contacts, {:per_page => 10}
是一样的,rails会自动判断处理。有些函数的参数有两个HASH,这时就需要用{}显示隔开。如果只有一个,{}可省略。

另外symbol和string并不能通用,如下例。
h = {:key => 'value'}
h[:key] --->value
h['key'] --->nil
只不过Rails的API都做了处理,才使得两者通用。
   
0 请登录后投票
论坛首页 Ruby版 ruby

跳转论坛:
JavaEye推荐