问题标签 [activerecord-relation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
313 浏览

ruby-on-rails - 模棱两可的表参考

这个问题看起来很简单,但我从来没有遇到过这样的问题。

以下是设置:

我需要了解是否有读者阅读帖子。

@post.reader_links.where('created_at >= ?', 45.minutes.ago).any?

效果很好。

@post.readers.where('created_at >= ?', 45.minutes.ago),any?

抛出一个模棱两可的表列错误,因为混淆了该created_at列是指reader对象还是reader_link对象。发生这种情况是因为阅读器的类实际上是用户。如何查询45 分钟前由 reader_links 创建的读者?

我正在寻找类似的东西..

@post.readers.where('reader_link.created_at >= ?', 45.minutes.ago)

0 投票
1 回答
1577 浏览

ruby-on-rails - 如何将 arel 对象合并到 ActiveRecord::Relation 链中?

我知道如何将以下内容转换为使用严格的 Arel 方法,而不是混合 sql/string,但我不知道如何将生成的 arel 对象合并到 ActiveRecord::Relation 中,以便我可以在其上链接更多 AR::Relation 方法.

对于我之前的问题,我得到了以下非常有用的答案:

我试图做这样的事情:

但我最终得到了一个 arel 对象,我不知道如何将它与以下 ActiveRecord::Relation 合并:

Person.joins(:address).merge(Address.anywhere(query_term))

(更不用说注入也不是很优雅——我该如何改进呢?)

0 投票
2 回答
979 浏览

sql - 使用 Select 调用的双嵌套联接的 Rails 活动记录查询

我有以下架构:

照片has manyhas many用户。

我使用这个 Rails 服务器作为 iOS 应用程序的后端,并且在添加照片时需要不断地向组中所有相关用户推送通知。

我的问题是找到最便宜的查询来解决User.ids受影响的问题。

到目前为止我有

我知道我必须在此之后放置一个选择参数,但无法弄清楚我一生的语法。

给定一张照片,我正在寻找最有效的方法来查找受影响的用户 ID 的集合。

任何帮助将非常感激!!!

0 投票
1 回答
1556 浏览

ruby-on-rails - How to delete objects through a named scope?

There is a join table with three columns: id, product_a_id, product_b_id

I would like to filter the table by a specific product regardless in which column the product id is contained. How can I write a named scope which respects that a product can be nil? The following draft is inspired by a post by Zack Holman though it does not work:

Then I would like to know how I can delete all products returned in the ActiveRecord::Relation?

0 投票
0 回答
245 浏览

ruby-on-rails - 从无表模型返回 ActiveRecord::Relation

在我的应用程序(Rails 4)中,用户模型不存储在“本地”数据库中,而是在后台应用程序中。

因此,我使用无表模型(使用来自 softace / activerecord-tableless 的 gem),并且我有一个模块“ApiUser”来访问我的后台。

用户模型(无表)使用此模块进行后台的每个操作(读取或写入数据......)。

在我的模型中,我实现了一个“全部”方法(以及 API 中用于从后台检索数据的相应函数)。目前,在模型中,我通过执行('result[:user]' 是模块检索到的数据)
创建了一个填充有数据的数组。 它工作得很好,但我与其他模型有关系(has_many),并且一些自动功能在关系上不起作用(,,... )。result[:user].each { |user| users << User.new(user) }
eachindex_bymap

我的问题是:如何像真正的 ActiveRecord 模型一样模拟 ActiveRecord::Relation?
(也许反序列化?但我没有发现任何有用的东西。我还阅读了 RailsCasts 239 关于 ActiveRecord 关系,但它没有帮助我)

谢谢

0 投票
6 回答
10380 浏览

ruby - Rails 结合了多个 activerecord 关系

我想联合多个活动记录关系

例如,

我想结合这两种关系。

不合并,合并是 apple_companies.merge(banana_companies) => Company.where("name like ? and name like ?", "%apple%","%banana%")

我想 Company.where("name like ? or name like ?", "%apple%","%banana%")

之后,

我会编码

但是我写的代码使公司排列起来......

所以我不能向公司订购和寻呼...... :(

谢谢你

0 投票
2 回答
152 浏览

ruby-on-rails - 无需任何方法或使用 `all()` 生成 ActiveRecord::Relation

看似简单的问题。

我正在尝试ActiveRecord::Relation从模型构建对象而不使用where(). 例如:

您可以看到,如果参数中既不设置activesmokers也不设置,@people 只是模型,而不是ActiveRecord::Relation.

我可以all在结束时继续,return @people但必须有更好的方法。

想法?

0 投票
4 回答
17045 浏览

ruby-on-rails - Rails 4 模型方法求和

在我的应用程序中,我有一个User带有goal_ytd方法的模型,可以执行一些计算。

在控制器中,我有一个@users可能是User或 的ActiveRecord::Relation变量,users我想对所有的@userss求和goal_ytd

我的第一个倾向是:

这在这两种情况下都引发了弃用警告,因为在 Rails 4.1 中使用sumon anActiveRecord::Relation正在消失。

因此,我将代码更改为:

然后抛出一个NoMethodError,因为在某种情况下,@users被分配@users = User并且User没有to_a方法。

分配@usersusing@users = User.all会引发弃用警告,因为Relation#all也已弃用。

有没有办法把所有的都Users作为一个数组?有没有更好的办法?

0 投票
0 回答
55 浏览

sql - ruby 查询没有得到符号 - 或 /

我有下一行代码:

问题是查询的结果显示我是否只使用“2014”进行查询,并且对于“2014-11-20”和“2014 11 20”也是如此。就像它将此符号作为查询的结束或其他东西一样。

0 投票
1 回答
468 浏览

ruby-on-rails - 覆盖特定模型 Rails 4.2 的 update_all 方法

我需要覆盖 rails update_all 方法,以便更新特定模型的 updated_at 字段。

我在 app/config/initializer/xyzfile.rb 添加了以下模块:

我想将其用于特定型号,我该怎么做?

  • 在每个 update_all 中添加 updated_at 是解决方案之一,但我正在寻找一个可以覆盖 update_all 方法的解决方案。