-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>'

怎么了?谢谢。

4

3 回答 3

4

这是相反的方式。

STATUS.include?(s)
于 2013-03-31T16:31:22.133 回答
3

depa 是正确的,反之亦然;但是,Rails 还in?通过 ActiveSupport 提供了一种方法s.in?(STATUS),如果这对您更有意义,您可以使用它。

于 2013-03-31T16:34:00.400 回答
0

你得到了接收者和相反的论点。检查您的标题:您在被动中写了“一个单词包含在数组中”。如果它处于活动状态,它将是“数组包含一个单词”或the_array.include?(a_word),不是a_word.include?(the_array)

于 2013-03-31T16:31:17.520 回答