2

可能重复:
在 Ruby 中,如何确定字符串是否不在数组中?

现在我有这个代码:

partial_update = true if session[:intended_params][:controller] == 'foo'
partial_update = true if session[:intended_params][:controller] == 'bar'
partial_update = true if session[:intended_params][:controller] == 'ding'
partial_update = true if session[:intended_params][:controller] == 'dong'
partial_update = true if session[:intended_params][:controller] == 'up'
partial_update = true if session[:intended_params][:controller] == 'down'
partial_update = true if session[:intended_params][:controller] == 'bing'
# ETC. 

我想将其更改为

array = %w[foo bar ding dong up down bing]
partial_update = true if session[:intended_params][:controller]  == array.any_of_the_possibilites

有没有好的方法来做到这一点?

4

2 回答 2

6

使用 Ruby数组(可枚举)include?方法

array = %w[foo bar ding dong up down bing]
partial_update = true if array.include?(session[:intended_params][:controller])
于 2012-10-15T15:33:01.527 回答
1
case session[:intended_params][:controller]
when *%w[foo bar ding dong up down bing]
  partial_update =  true
end

case虽然可能是滥用声明

于 2012-10-15T17:23:50.170 回答