Tag: activerecord relation

不明确的表格参考

这个问题看起来很简单,但我从未遇到过这样的问题。 以下是设置: Post has_many :reader_links Post has_many :readers, :through => :reader_links 我需要找出是否有读者阅读post。 @post.reader_links.where(‘created_at >= ?’, 45.minutes.ago).any? 效果很好。 @post.readers.where(‘created_at >= ?’, 45.minutes.ago),any? 抛出一个模糊的表列错误,因为create_at列是读取器对象还是reader_link对象是混淆的。 这是因为读者的类实际上是用户。 如何查询45分钟前由reader_links创建的读者? 我正在寻找像… @post.readers.where(‘reader_link.created_at >= ?’, 45.minutes.ago)

使用选择调用的双嵌套连接的Rails活动记录查询

我有以下架构: 照片has many组has many用户。 我使用这个Rails服务器作为iOS应用程序的后端,并且在添加照片时不断需要向组的所有相关用户推送通知。 我的问题是找到最便宜的查询来解决仅受影响的User.ids 。 到目前为止我有 Photo.find(1).groups.joins(:users) 我知道在此之后我必须输入一个select参数,但是无法弄清楚我生活的语法。 鉴于照片,我正在寻找最有效的方法来查找受影响的用户ID的集合。 任何帮助将非常感激!!!

Rails 4按模型方法求和

在我的应用程序中,我有一个User模型,带有goal_ytd方法,它执行一些计算。 在一个控制器中,我有一个变量@users ,可能是User或ActiveRecord::Relation goal_ytd的users ,我想总结所有@users的goal_ytd 。 我的第一个倾向是: @users.sum(&:goal_ytd) 在两种情况下都抛出了弃用警告,因为在Active 4.1中使用对ActiveRecord::Relation sum消失了。 所以,我将代码更改为: @users.to_a.sum(&:goal_ytd) 然后抛出一个NoMethodError因为在某种情况下, NoMethodError由@users = User分配,而User没有to_a方法。 使用@users = User.all分配@users会抛出弃用警告,因为Relation#all也已弃用。 有没有办法让所有Users成为一个数组? 有没有更好的办法?