问题标签 [arel]
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.
ruby-on-rails-3 - ActiveRecord::Relation 加入的条件不仅仅是外键
有没有办法使用 ActiveRecord::Relation 为左外连接指定多个条件?
以下面的 SQL 语句为例。谁能用 ActiveRecord::Relation 对象重写它?
在 ActiveRecord 3.0.3+ 下有没有办法做到这一点?
提前致谢。
ruby-on-rails-3 - Rails 3,RSpec 2.5:使用带有命名范围的 should_receive 或 stub_chain
我使用 Rails 3.0.4 和 RSpec 2.5。在我的控制器中,我大量使用命名范围,例如
在我的测试中,我希望能够模拟这样一个查询的结果,而不是措辞。我认为做类似的事情没有意义
因为当我决定重新排序命名范围时,此测试将失败。
使用 Rails 2.3 和 RSpec 1.x,这工作得很好:我可以写
并且上述调用将被捕获并正确处理。然而,在 Rails 3 中,由于某种原因,这不再起作用。
为什么?如何对嵌套范围的结果设置期望值或存根?由于 Rails 3 的 ActiveModel 中的所有内容都是一个命名范围(感谢 ARel),因此这必须以某种方式实现,否则测试确实会非常脆弱。
谢谢!
更新:另见GitHub 上的问题报告。
ruby-on-rails-3 - Rails3 和 ActiveRecord::Relation - Arel 和 OR
我在一个名为 Events 的模型中定义了一些范围。现在我需要使用 OR 运算符加入他们。我正在使用 Rails3,我对 ActiveRelation & Arel 以及我应该如何以及如何使用它有点困惑
我如何获得事件
当我尝试时Events.for_company(X).or(issues)
出现错误
NoMethodError:#ActiveRecord::Relation 的未定义方法“或”
使用Events.for_company(Company.find(1)).arel.or(Events.issues)
我得到
NoMethodError:#Arel::SelectManager 的未定义方法“或”
我想获取所有问题或用户来自确定公司的事件。
谢谢。
sql - 有没有办法反转 ActiveRecord::Relation 查询?
假设我们有以下内容:
我们能以某种方式得到一个倒置的 SQL 查询吗?
我在找什么,应该是这样的:
ruby-on-rails-3 - User.where(:id => [1,2]).where(:id => 2).arel.to_sql unexpected result
From rails console, running the following gives an unexpected result:
I'm not expecting that to be an OR
.
This example is a very simplified example of a tableless User
model I have that defines a method:
where Cars
are kept in the database. Then later in a controller
(okay, this is also a simplified example, but much more representative of what I'm trying to accomplish)
ruby-on-rails - 想在 Rails 中查找没有关联记录的记录
考虑一个简单的关联......
让所有在 ARel 和/或 meta_where 中没有朋友的人最干净的方法是什么?
那么 has_many :through 版本呢
我真的不想使用 counter_cache - 从我读过的内容来看,它不适用于 has_many :through
我不想提取所有 person.friends 记录并在 Ruby 中循环它们 - 我想要一个可以与 meta_search gem 一起使用的查询/范围
我不介意查询的性能成本
离实际 SQL 越远越好……
sql - Rails 3 / Arel 范围内的 SQL OR
我正在尝试创建一个 Rails 3 模型范围,本质上是:
问题是,我无法找到一种方法来完成这项工作。
我曾希望 arel_table 能工作,但它抱怨它“无法访问 ActiveRecord::Relation”:
这可以通过将“已发布”范围复制为 Arel 来完成,但随后我将重复代码(在我的项目中,“已发布”范围更深入)。
我能想到的最好的是:
ruby-on-rails - 如何在 Rails 3 中订购包含的元素
我有一个模型关系,其中today
有很多tasks
我正在尝试检索用户的today
对象,包括tasks
并将它们全部呈现给 Json。所有这一切都很顺利,直到我决定要tasks
在today
对象内订购,因为respond_with block
它也用于呈现 html 页面。有什么方法可以包含tasks
并订购它们?
我正在尝试这样的事情:
这会正确检索所有内容,但似乎根本没有对任务进行排序。
这是我曾经拥有的(效果很好,但没有订购):
我知道我可以检索数据并在之后对其进行排序,如下所示:
这可行并且会通过我的测试,但我希望有一种 ActiveRecord 方法来解决这个问题。
ruby-on-rails-3 - 如何使用 should_receive 规范 ActiveRecord::Base.find(something).method?
假设我们有以下代码:
我应该如何 Post#fix_published__at!
指定 should_receive?
ruby-on-rails-3.1 - activerecord 中的子查询
使用 SQL,我可以轻松地进行这样的子查询
这会产生:
如何使用 rails 的 3 activerecord/arel/meta_where 做到这一点?
我确实需要/想要真正的子查询,没有 ruby 解决方法(使用多个查询)。