按自定义查找模型 属性
Find a model by a custom property
我有一个模型有自定义 属性:
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]
但它在性能方面效率不高。有什么更有效的方法?
我想你的意思是 my_custom_field
没有存储在数据库中。在这种情况下,您要查找的是 detect
.
users.detect { |user| user.my_custom_field == '123' }
使用 detect
将导致循环在找到结果后立即停止迭代 return。
我有一个模型有自定义 属性:
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]
但它在性能方面效率不高。有什么更有效的方法?
我想你的意思是 my_custom_field
没有存储在数据库中。在这种情况下,您要查找的是 detect
.
users.detect { |user| user.my_custom_field == '123' }
使用 detect
将导致循环在找到结果后立即停止迭代 return。