複数のORを持つ条件があるとします。Ruby - オブジェクトがリストに含まれているかどうかを判断するための代替スタイル?
if ['new', 'edit', 'action'].include?(action)
が、それはロジックを作成するために「後方」の方法のように感じている:
if action == 'new' || action == 'edit' || action == 'update'
これを書くための別の方法はあります。
if action.equals_any_of?('new', 'edit', 'action')
:
のような何かを行うには任意の組み込みの方法はありますか?
アップデート - 私はこの小さなスニペットにかなり夢中だ:
class Object
def is_included_in?(a)
a.include?(self)
end
end
アップデート2 - 以下のコメントをもとに改善点:
class Object
def in?(*obj)
obj.flatten.include?(self)
end
end
私はRubyデベロッパーではありませんが、私は2番目のものが好きです(私はJavaScriptでこれをやっています)。 –
恐らく 'is_included_in?(* a)'はエラーをより確実にするでしょう。 –
ええ、それは便利ですが、私は通常、短い「Object#in?」を書いています:http://stackoverflow.com/a/4421030/188031 – tokland