Ruby on rails 另一种写入方法:如果某个变量&&;某些_有效。大小==2

Ruby on rails 另一种写入方法:如果某个变量&&;某些_有效。大小==2,ruby-on-rails,ruby,Ruby On Rails,Ruby,在Ruby和RoR中,我经常发现自己在测试对象是否存在,然后测试对象的属性是否符合某些标准。像这样: if params[:id] && params[:id].size == 40 ...do stuff end 有没有更有效的方法?比如: if params[:id].size == 40 rescue false 但是不使用rescue?在Rails 2.3中,您可以使用Object#try方法: if params[:id].try(:size) == 40

在Ruby和RoR中,我经常发现自己在测试对象是否存在,然后测试对象的属性是否符合某些标准。像这样:

if params[:id] && params[:id].size == 40
  ...do stuff
end
有没有更有效的方法?比如:

if params[:id].size == 40 rescue false

但是不使用rescue?

在Rails 2.3中,您可以使用Object#try方法:

if params[:id].try(:size) == 40
  # do stuff
end
当调用nil(带有任何参数)时,try将返回nil。希望这是有意义的。

试试And和gem:

require 'andand'

if params.andand.size == 40
  ...do stuff
end

你不需要额外的宝石就可以做到

if params[:id].to_a.size == 40
    ... do stuff
end

美丽,只是美丽。谢谢@中微子真棒!我根本不知道,回答得很好。我想+1,但我达到了我的极限:(
try
ActiveSupport
的一部分。你可以在Rails.Hmm之外使用它。它们虽然相似,但有点不同。-r