Ruby on Rails 3.2.2を使用していて、次のコードを短縮しようとしています。
custom_values.each do |custom_value|
raise("Error!") unless AVAILABLE_CUSTOM_VALUES.include?(custom_value)
end
それを作る方法はありますか?もしそうなら、どのようにコードを短縮する(または、おそらく改善する)ことができますか?
Ruby on Rails 3.2.2を使用していて、次のコードを短縮しようとしています。
custom_values.each do |custom_value|
raise("Error!") unless AVAILABLE_CUSTOM_VALUES.include?(custom_value)
end
それを作る方法はありますか?もしそうなら、どのようにコードを短縮する(または、おそらく改善する)ことができますか?
個人的には、あなたが書いたコードに問題はありませんが、次のように短くすることができます:
(custom_values - AVAILABLE_CUSTOM_VALUES).empty? || raise('Error!')
それほど短くはありませんが、もう少しエレガントかもしれません:
raise('Error!') unless custom_values.all? do |custom_value|
AVAILABLE_CUSTOM_VALUES.include?(custom_value)
end