Rails - 将字段名称与前缀相结合

时间:2014-04-23 12:58:15

标签: ruby-on-rails devise

在我的用户模型(Rails 3devisemongoid)中,我有一些以前缀开头的字段:

class User
 ...

 field :usr_feature1, type: Boolean
 field :usr_feature2, type: Boolean
 field :usr_feature3, type: Boolean
 field :usr_feature4, type: Boolean

 ...
end

我需要一个允许检查true / false字段的函数,如下所示:

def check_usr "feature_id"
  # return true if e.g. usr_feature1 is true
end

我怎样才能"结合"传入此函数的字段名称的前缀?我能想出的唯一解决方案是创建一个"检查功能"对于每个繁琐的领域,我怀疑有更简单的方法来实现这一点。

1 个答案:

答案 0 :(得分:2)

这应该这样做,假设feature_id是一个数字

def check_usr(feature_id)
  !!self["usr_feature#{feature_id}"]
end