我在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 :(得分:4)
反过来说。
STATUS.include?(s)
答案 1 :(得分:3)
depa是正确的,它是相反的;但是,Rails还通过ActiveSupport提供in?
方法,允许您使用s.in?(STATUS)
,如果这对您更有意义。
答案 2 :(得分:0)
你得到了接收器和相反的参数。检查你的标题:你在被动中写了“一个单词包含在数组中”。如果它处于活动状态,则表示“数组包含一个单词”或the_array.include?(a_word)
,而不是a_word.include?(the_array)
。