我有一个用户表(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/

10-13 09:51