我有一个用户表(datamapper模型),它有一个名为permission
的列,其中包含位掩码值。property :permission, Flag[:perm1, :perm2, :perm3]
我想找到所有拥有特定权限的用户,如perm1和perm2
所以我打电话,User.all(:permission => [:perm1, :perm2])
这使得查询select * from user where permission = 3
这是不正确的。
while正确的查询应该是(因为它是类型-flag
)select * from user where permission &1 != 0 and permission &2 != 0
有没有人在ruby数据映射器中,如何调用搜索标志值。
最佳答案
我找不到任何直接的方法所以用了这个方法。User.all(:conditions => ['permission & ? != 0 and permission & ? != 0', 1,2])
关于sql - Ruby datamapper-搜索标志值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15841785/