为了避免报错,我会在 action 里做如下检查
if ( params['foo'].nil? && params['foo'].kind_of?(Array) && params['foo'].include?('bar') )
有没有更加便捷点的写法?
NoMethodError: undefined method `try' for nil:NilClass
from (irb):3
from /home/andy/.rvm/rubies/ruby-1.9.3-p448/bin/irb:13:in `<main>'
个人感觉 #5 楼 的方式 更好些。
#10 楼 @mouse_lin 楼主在 action 里判断 params,明显是 rails。 @zj0713001 我猜测楼主的应用场景是判断某个 checkbox 是否选中,所以实际场景如果不是数组或者 nil 就是被黑了。加上 to_a 的确更保险。
#15 楼 @zfben #17 楼 @zj0713001 #13 楼 @meeasyhappy
谢谢你们的回复,我的确就是在 rails 里使用,既然 nil 可以直接转化成数组,也就没有必要 try 了吧 :)
params[:foo].to_a.include? 'bar'