我想知道如何检查 MongoMapper 数组中是否存在数组元素。这个问题是我能找到的最接近的问题,但它解决了查询,而不是简单地使用您已有的文档。
我的用户模型包含该行
key :roles, Array
“角色”数组包含诸如“管理员”或“用户”之类的字符串。对于授权,我需要在用户实例上调用类似以下方法:
if user.roles.contains?('admin')
# Do administrative stuff.
end
但是当我尝试调用“包含?” Ruby 抱怨说没有这样的方法:
NoMethodError (undefined method `contains?' for #<Array:0x007fc845cd8948>):
app/models/ability.rb:11:in `initialize'
app/controllers/settings_controller.rb:5:in `index'
如果没有办法做到这一点,那么如何将 Array 转换为 Ruby 数组以调用“包含?”?调用 to_a 并没有这样做:
if user.roles.to_a.contains?('admin') # etc...
我在 Mountain Lion 上使用 Rails 3.2.13、Ruby-1.9.3-p392 和 MongoMapper 0.12.0。