0

Ruby on Rails 3.2.2を使用していて、次のコードを短縮しようとしています。

custom_values.each do |custom_value|
  raise("Error!") unless AVAILABLE_CUSTOM_VALUES.include?(custom_value)
end

それを作る方法はありますか?もしそうなら、どのようにコードを短縮する(または、おそらく改善する)ことができますか?

4

2 に答える 2

5

個人的には、あなたが書いたコードに問題はありませんが、次のように短くすることができます:

(custom_values - AVAILABLE_CUSTOM_VALUES).empty? || raise('Error!')
于 2012-09-18T23:09:26.723 に答える
0

それほど短くはありませんが、もう少しエレガントかもしれません:

raise('Error!') unless custom_values.all? do |custom_value|                                                                                                      
  AVAILABLE_CUSTOM_VALUES.include?(custom_value)                                                                                                                 
end
于 2012-09-19T04:56:38.793 に答える