-6

在 Ruby 中可以做到这样的事情吗

if @subscription.state = ['trail', 'active']
   #Do something 
end

应该是不言自明的。

4

4 回答 4

7

也许:

['trail', 'active'].include?(@subscription.state)
于 2013-04-01T14:54:22.827 回答
5

你可以使用include?ruby的方法Array

if ['trail', 'active'].include?(@subscription.state)
  #do something
end
于 2013-04-01T14:54:51.413 回答
0

尝试Array#include来检查这一点。

if ['trail', 'active'].include? @subscription.state
    #Do something 
end

我强烈建议阅读镐书,因为这是一个基本的 Ruby 问题。

于 2013-04-01T14:55:01.387 回答
0

你也可以使用:Enum#any?

@subscription = false
#=> false
[true,false].any? {|x| x == @subscription }
#=> true
@subscription = true
#=> true
[true,false].any? {|x| x == @subscription }
#=> true
@subscription = 15
#=> 15
[true,false].any? {|x| x == @subscription }
#=> false
if [true,false].any? {|x| x == @subscription } then
 p "hi"
else
 p "hello"
end
#"hello"
#=> "hello"
于 2013-04-01T16:13:47.863 回答