2013-03-31 74 views
-1

我想這對IRB中,卻找不到解決辦法:檢查,如果一個字包含數組

irb(main):001:0> STATUS = %w(draft public) 
=> ["draft", "public"] 
irb(main):003:0> s = "draft" 
=> "draft" 
irb(main):004:0> s.include?(STATUS) 
TypeError: can't convert Array into String 
    from (irb):4:in `include?' 
    from (irb):4 
    from /Users/SO/.rbenv/versions/1.9.3-p374/bin/irb:12:in `<main>' 

有什麼不對?謝謝。

+0

你想完成什麼?檢查'STATUS'中的任何單詞是否在's'中?如果是這樣,你的表達是顛倒的。 –

+0

爲什麼不'STATUS.include?(s)'? –

回答

3

depa是正確的,這是相反的;然而,Rails還通過ActiveSupport提供了一個in?方法,如果這對您更有意義,它將允許您使用s.in?(STATUS)

0

你以另一種方式得到了接收器和參數。檢查你的標題:你寫了「一個詞包含在數組中」的被動語態。如果它處於激活狀態,那麼它將是「該數組包含一個單詞」或the_array.include?(a_word),而不是a_word.include?(the_array)

4

這是相反的。

STATUS.include?(s) 
相關問題