@user.user_type = "hello"
@user.user_type == "hello"
true
@user.user_type == ("hello" || "goodbye")
false
それは@user.user_type
は二つの文字列の1つに含まれているかどうかをチェックしますので、私は最後の文を書くにはどうすればよいですか?
@user.user_type = "hello"
@user.user_type == "hello"
true
@user.user_type == ("hello" || "goodbye")
false
それは@user.user_type
は二つの文字列の1つに含まれているかどうかをチェックしますので、私は最後の文を書くにはどうすればよいですか?
["hello", "goodbye"].include? @user.user_type
Enumerable#include?
行くための慣用的かつ簡単な方法ですが、サイドノートとして、私はあなたに(私が想像して)Pythonのファンを満足させることは非常に些細な拡張子を表示してみましょう:
class Object
def in?(enumerable)
enumerable.include?(self)
end
end
2.in? [1, 2, 3] # true
"bye".in? ["hello", "world"] # false
時々(ほとんどの実際には)、オブジェクトがコレクション内にあるかどうかを尋ねる意味的には、他の方法よりも適切です。今すぐあなたのコードでは、なります
@user.user_type == "hello" || @user.user_type == "goodbye"
しかし、我々プログラマは自然とても良く使用Enumerable#include?
や友人による怠惰です:
@user.user_type.in? ["hello", "goodbye"]
はところで、私はあなたが書くしようとしていた何だったと思います。
この答えには貴重な情報がたくさんあります。 – Dogweather
未定義のメソッドが含まれていますか? ["application/jpg"、 "application/png"]の場合私は間違って何をしていますか? – sscirrus
実際、それは「含む?」です。しかし、@ sscirrus、あなたはdocsをチェックすべきです:http://ruby-doc.org/core/classes/Enumerable.html – tokland
ありがとうTokland。私は適切な情報源を探していましたが、Google検索の数分でそれを見つけられませんでした。 'include?'は正しく動作します。 +1! – sscirrus