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 回答