我不知道为什么红宝石给and,or少优先级比&&,||和赋值运算符?有什么缘故吗?
可能重复:
Ruby中的i = true和false是真的吗?
Perl(或,和)和(||,&&)短路运营商之间有什么区别?
Ruby:||之间的区别 和'或'
是||一样or的Rails的?
案例A:
@year = params[:year] || Time.now.year
Events.all(:conditions => ['year = ?', @year])
Run Code Online (Sandbox Code Playgroud)
将产生以下SQL script/console:
SELECT * FROM `events` WHERE (year = 2000)
Run Code Online (Sandbox Code Playgroud)
案例B:
@year = params[:year] or Time.now.year
Events.all(:conditions => ['year = ?', @year])
Run Code Online (Sandbox Code Playgroud)
将产生以下SQL script/console:
SELECT * FROM `events` WHERE (year = NULL)
Run Code Online (Sandbox Code Playgroud)