如何检查对象是否属于Ruby中的数组

时间:2012-03-31 13:50:39

标签: ruby-on-rails ruby

我通常需要查看以下内容:

if ['Bob','Mary','John'].include? @user.name

有没有办法写出类似的东西:

if @user.name.in? ['Bob','Mary','John']

谢谢。

2 个答案:

答案 0 :(得分:5)

Rails 3.1已经有了这个Object.in?方法

characters = ["Konata", "Kagami", "Tsukasa"]
"Konata".in?(characters) # => true

character = "Konata"
character.in?("Konata", "Kagami", "Tsukasa") # => true

答案 1 :(得分:4)

如果@user.nameString,您可以将in?添加到String

class String                                                                                                                                                          
  def in? a
    a.include? self
  end
end

这具有以下效果:

irb(main):011:0> 'Bob'.in? ['Bob','Mary','John']
=> true
irb(main):012:0> 'Jane'.in? ['Bob','Mary','John']
=> false