在queel,我可以这样做:
User.where{id.eq "2" | admin.eq true}
来查询。我想知道我是否可以转换[sic]一个字符串,这是一个类似的条件:
string = "id: 2"
或
string = "id.eq '2' | admin.eq true"
并运行:
User.where{string}
或
User.where(string)
结果不是哈希。我怎么能这样做?
答案 0 :(得分:2)
您需要的是hash
而不是string
。您可以像这样使用它,
hash = {id: 2}
User.where(hash)
如果您真的想使用string
,可以这样做,
string = "id = 2"
User.where(string)
如果要执行该字符串,可以使用eval
。在这种情况下,它将是这样的,
string = "{id: 2}"
User.where(eval string)
答案 1 :(得分:-1)
NB 要使用下面的变体,应该在查询“ruby eval is evil”时阅读Google输出的前五页。
BidiMap