我发现自己在Rails中多次遇到同样的情况。我有一个大致对应于模型的哈希,我想找到是否存在匹配哈希中所有键/值对的模型实例。 Rails有办法做到这一点吗?如果没有,我可以包含第三方库/功能吗?
例如,我很乐意做类似的事情:
person_hash = { name: "John Doe", favorite_color: "chartreuse" }
p = Person.ultra_cool_find(person_hash)
puts p.name=="John Doe" #true
puts p.favorite_color=="chartreuse" #true
答案 0 :(得分:1)
尝试:
Person.find_by(person_hash)
Rails文档:https://msdn.microsoft.com/en-us/library/azure/jj927170.aspx
答案 1 :(得分:1)
人是ActiveRecord模型吗?
你试过吗
p = Person.find_by(name: person_hash[:name])
如果你的person_hash有任何唯一字段,这将有效。例如,如果只有一个人的名字叫John Doe,那么上面的例子就可以了。
否则
p = Person.where(name: person_hash[:name]).where(favorite_color: person_hash[:favorite_color])
您可以按
添加要搜索的每个项目的位置