在Ruby和RoR中,我经常发现自己在测试一个对象是否存在,然后测试一个对象的属性是否与某个标准匹配。如下所示:
if params[:id] && params[:id].size == 40
...do stuff
end有没有更有效的方法来做到这一点?类似于:
if params[:id].size == 40 rescue false但不用救援队?
发布于 2010-01-07 23:45:45
在Rails2.3中,你可以使用Object#try方法:
if params[:id].try(:size) == 40
# do stuff
end当调用nil (带有任何参数)时,try将返回nil。希望这是有意义的。
发布于 2010-01-08 03:15:52
试试andand gem:
require 'andand'
if params.andand.size == 40
...do stuff
end发布于 2011-04-01 21:21:27
你可以在没有额外的gem的情况下做到。
if params[:id].to_a.size == 40
... do stuff
endhttps://stackoverflow.com/questions/2021402
复制相似问题