- 浏览: 51644 次
- 性别:
- 来自: 青岛
最新评论
文章列表
首先这三个都是判空的。 而 .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法
.nil? 判断对象是否存在(nil)。不存在的对象都是nil的
.empty? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。有点像判断长度是否为零,呵呵
.blank? 相当于同时满足 .nil? 和 .empty? 。railsAPI中的解释是如果对象是:false, empty, 空白字符. 比如说: "", " ", nil
, [], 和{}都算是blank。 (o ...
Evaluation in Ruby
- 博客分类:
- ruby
Ruby的evaluation是一个很重要的功能,它可以eval一个字符串或者一个block。在一些适宜的情况下使用它会得到一些“意外”的效果。
常用的eval
Ruby常用的evaluation有:class_eval (module_eval),instance_eval ,eval 。
这三种evaluation方法可以在不同的情况下使用:
1. class_eval
class_eval和module_eval是相同的,class_eval是module_eval的一个alias。
class_eval可以在一个mod的上下文中ev ...
Ruby的include和extend
- 博客分类:
- ruby
在ruby中基本上有三种引入module的方式 一、在类定义中引入module后,module中的方法成为类的实例方法。 在类定义中用include引入module。 例如: Ruby代码 module Base def test p "This is a instance method!" end end class Car include Base end Car.new.test => "This is a instance method!" module Basedef testp "This is a instance m ...
client_side_validations是一个rails3下比较不错的前台校验插件。 它能把模型中的校验做为前台的校验,更支持自定义校验,支持像SimpleForm 和Formtastic等的Formbuilders。
安装
从本质上讲,class_eval(也就是module_eval)可进入类定义体中:
1 c=Class.new2 c.class_eval do
本文介绍Ruby里的几个关键字。
1. alias
Ruby里的关键字,用于定义方法或者全局变量的别名。 例子:
class A
def m1
puts "m1"
end
alias m2 m1
end
=> nil
a = A.new
=> #<A:0xb7ef5234>
a.m1
m1
=> nil
a.m2
m1
=> nil
在使用的时候,注意原有的方法名在最后位置,用空格分开。
利用Httponly提升web应用程序安全性
- 博客分类:
- web
随着www服务的兴起,越来越多的应用程序转向了B/S结构,这样只需要一个浏览器就可以访问各种各样的web服务,但是这样也越来越导致了越来
越多的web安全问题。www服务依赖于Http协议实现,Http是无状态的协议,所以为了在各个会话之间传递信息,就不可避免地用到Cookie或者
Session等技术来标记访问者的状态,而无论是Cookie还是Session,一般都是利用Cookie来实现的(Session其实是在浏览器的
Cookie里带了一个Token来标记,服务器取得了这个Token并且检查合法性之后就把服务器上存储的对应的状态和浏览器绑定),这样就不可避免地
安全聚焦到 ...
1.Block:
Ruby中的块就是由多行代码组成的一个代码块,通常可以把它认为是一个匿名方法,常用来迭代一个数组或范围(如each, times方法);语法格式如下:
{
//code
}
OR
do
//code
end
块变量:当创建一个块时,在两个竖线之间(如: | i |)被称作块变量,作用和一个正常方法的参数一样;如:5.each{| x | puts x }
2.Block and Array
B ...
Symbol
在Ruby中,有一种奇怪的对象,在一个变量前加一个冒号“:”,这就是Ruby的Symbol,Symbol是Symbol类的
实例,Symbol形式上和字符串很像,但是两者却有区别,首先Symbol不是String类对象,String类的很多方法不能作用到Symbol上
面,然后一个显著的区别就是只要给定一个名字,就唯一确定了一个Symbol对象,而字符串即使是相同,也是不同的对象,怎么理解这句话,看下边的示例:
稍作解释:前三个:test或者:”test”是Symbol对象,其object_id都是86600,说明 ...
http://hi.baidu.com/hackerbase/blog/item/86503bf35e983b5d352acc19.html
转自 :
现在Rails官方推荐的最佳部署方式是Apache+Passenger的模式。此模式拥有及其强大的功能,能够自动增减集群进程的数量,对后续部署又很简单。难怪DHH在博客中对Passenger赞誉有加。
近期我在Ubuntu上部署了几个Rails网站,都是采用Apache+Passenger的模式。故此写下我的安装配置经验,与大家分享。
安装完Ubuntu 8服务版后,操作系统非常小,很简洁,没有一点多余的软件。这样似乎是U ...
RVM可以管理不同的ruby,也可以管理同一个ruby下的不同gem集合,以下是常用的命令:
1. 安装见官方 http://beginrescueend.com/
2. 查看可以安装的ruby: rvm list known
3. 查看已经安装的ruby: rvm list
4. 使用某个ruby: rvm use x.x.x(x.x.x 是 rvm list 里的版本,可以不用全称;加上 --default 设置为默认的ruby)
5. 使用系统的ruby: ruby use ruby-1.9.2-p290 (可以加上 --default选项)
6. 创 ...
hash 和 array 的一个用法
- 博客分类:
- ruby
a=[[1,2],[3,4]]
Hash[*a.flatten] => {1=>2, 3=>4}
下午 看了下 按位与、按位或组合 权限串应用
首先每一个权限数都是2的N次方数
如: k1=2 ; //添加 00000010
k2=4 ; //删除 00000100
k3=8; //修改 00001000
user .insignia => k1
增加 k2权限 需要对各个所拥有的权限数按位或了。
user .insignia | k2 => 00000010 | 00000100 =>00000110
判断是否有k2权限
user . ...
gem 降级
- 博客分类:
- ruby on rails
- ruby
gem uninstall rubygems-update
gem install rubygems-update -v 1.7.2
update_rubygems
#如果使用了rvm,则:
$ rvm rubygems remove
$ rvm rubygems 1.3.7
http://www.ruanyifeng.com/blog/2010/02/url_encoding.html