我有一个具有自定义属性的模型:
class User < ActiveRecord
def my_custom_field
# ....
end
end
我需要找到具有特定my_custom_field
的用户。我不能这样做:
User.where(my_custom_field: '123')[0]
但是,我可以这样做:
User.all.select { |x| x == '123'}[0]
但它在性能方面效率不高。什么是更有效的方式?
答案 0 :(得分:3)
我认为您所说的是my_custom_field
未存储在数据库中。在这种情况下,您正在寻找的是detect
。
users.detect { |user| user.my_custom_field == '123' }
使用detect
将导致循环在找到结果后立即停止迭代并返回。