2013-03-31 37 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) 
相关问题