ruby-on-rails – Rails – 给定一组用户 – 如何获得电子邮件的输出?

ruby-on-rails – Rails – 给定一组用户 – 如何获得电子邮件的输出?,第1张

概述我有以下内容: @users = User.all 用户有几个字段,包括电子邮件 我希望能够获得所有@users电子邮件的列表. 我试过了: @users.email.all but that errors w undefined 想法?谢谢 (按流行需求,发布作为真实答案) 我不喜欢fl00r’s solution的是它在数据库中为每个记录实例化一个新的User对象;这只是不规模.这对于一个只有 我有以下内容:

@users = User.all

用户有几个字段,包括电子邮件

我希望能够获得所有@users电子邮件的列表.

我试过了:

@users.email.all but that errors w undefined

想法?谢谢

解决方法 (按流行需求,发布作为真实答案)

我不喜欢fl00r’s solution的是它在数据库中为每个记录实例化一个新的User对象;这只是不规模.这对于一个只有10封电子邮件的表来说非常棒,但是一旦你开始涉及成千上万,你就会遇到问题,主要是Ruby的内存消耗.

通过在模型上使用connection.select_values以及一点ARel优点,可以解决这个小问题:

User.connection.select_values(User.select("email").to_sql)

这将为您提供数据库中电子邮件地址的直接字符串.没有对用户对象感到不满,并且比直接的User.select(“email”)查询更好地扩展,但我不会说它是“最佳规模”.可能有更好的方法来做到这一点,我还没有意识到.

重点是:String对象将使用比User对象更少的内存,因此您可以拥有更多内存.它也是一个更快的查询,并没有很长的路要走(运行查询,然后映射值).哦,地图也需要更长的时间.

如果您使用的是Rails 2.3 …

然后你必须手动构建sql,我很遗憾地说.

User.connection.select_values("SELECT email FROM users")

只是提供了Rails 3提供的帮助程序的另一个示例.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails – 给定一组用户 – 如何获得电子邮件的输出?全部内容,希望文章能够帮你解决ruby-on-rails – Rails – 给定一组用户 – 如何获得电子邮件的输出?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存