在Ruby中的邏輯運算有兩組,[!,&&,||]及[not,and,or]

*	[!,&&,||]			
	* higher precedence
*	[=,%=,~=,/=] 
	* between this two
*	[not,and,or]
	* lower precedence
		* 優先權:&& → || → and = or 。
		* && 或 || 會將符號前後方都認定為boolean(true,false)
# && 與 and 的比較
> a = true && false
 => false 
> a
 => false 
 
> a = true and false
 => false 
> a
 => true
# || 與 or 的比較
> a = false || true
 => true 
> a
 => true 
> a = false or true
 => true 
> a
 => false
# 總結,布林運算用[!,&&,||],流程控制用[not,and,or]
# boolean expression
if some_condition && some_other_condition
  do_something
end

# control flow
document.saved? or document.save!

Reference:

Ruby operators 優先順序

http://blog.jeffean.net/wiki/ruby.html

http://stackoverflow.com/questions/1426826/difference-between-and-and-in-ruby