问题标签 [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 - 为什么使用 SQL 构建器?Arel 诉 Sequel 诉 T-SQL
我试图了解通过面向对象的构建器 DSL 构建 SQL 与参数化原始 SQL 字符串的好处。在以三种方式研究/实现相同的查询之后,我注意到原始 SQL 是迄今为止最容易阅读的。这就引出了一个问题,“为什么要跳过篮筐?” 为什么不直接声明和使用原始 SQL?
这是我想出的:
首先,我猜它使 SQL 更便携,因为它可以被任何带有适配器的数据库使用。我想这是大佬吧?不过,大多数数据库不是可以理解大多数 T-SQL 吗?
其次,它提供了一个可以重用的查询对象——作为其他查询、命名范围链接等的基础。
通过构建 SQL 而不是声明它,您实现的主要投资回报是什么?
我非常欣赏命名范围,并了解将它们链接起来是如何有益的。我不担心通过模型访问相关记录。我纯粹是在谈论构建一个复杂的查询。
ruby-on-rails - 不区分大小写的搜索与活动记录
我使用导轨 3.0.4
这是我的 rails 应用程序中的一段 Arel 查询,如何使用 upcase 方法以与数据库无关的方式进行不区分大小写的搜索?
谢谢
ruby-on-rails-3 - Arel、联接和 Rails 查询
我最近被一个问题困住了一段时间,并找到了通往 Arel 的方法,看起来它应该允许我在查询中执行 OR。
作为起点,我需要将现有的 Rails 3 查询转换为 Arel,这就是我遇到问题的地方。
以下范围和查询按我的预期工作。它给了我与特定用户的广告相关的请求。
根据 Arel github 页面和 Railscast 215 上的 doco,我应该能够执行以下操作来使用 Arel 复制查询
这会导致错误
我可以在控制台中执行以下操作
所以看起来它正在形成 SQL 请求,但是当你把它放在 where
我得到以下
我已经尝试在 where 中执行其他 Arel 操作并且它有效(例如)
这有点超出了我不断增长的 rails/ruby 知识。有任何想法吗?
提前致谢。
ruby - 如何使用 Active Record 查找具有重复数据的记录
使用 ruby 和新的 Activerecord 在列中查找具有重复值的记录的最佳方法是什么?
ruby-on-rails - 如何使用 arel/关系代数和 has_many 获取不同的值:通过
当我尝试显示一个人参与的所有电影,并且他们在一部电影中扮演多个角色(导演、作家、演员)时,我会得到该电影的多行。如果我添加 .select('DISTINCT id') 或 movies.* 来尝试消除重复,我会收到以下错误:
Mysql2::Error: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 'DISTINCT id FROM
movies
INNER JOINmovie_people
ONmovies
.id =movie_peop' at line 1: SELECT
movies.*, DISTINCT id FROM
moviesINNER JOIN
movie_peopleON
movies.id =
movie_people.movie_id WHERE ((
movie_people`.person_id = 601619)) ORDER BY title LIMIT 18 OFFSET 0附近使用
我不知道如何正确编码 arel 请求。请帮忙。
谢谢你。
应用程序/控制器
应用程序/模型
数据库/schema.rb
电影/show.html.erb
标题:华氏 9/11
年:2004 年
导演:迈克尔·摩尔
编剧:迈克尔·摩尔
演员:迈克尔·摩尔乔治·W·布什
人/show.html.erb
名称: Michael Moore
华氏 9/11 (2004)
华氏 9/11 (2004)
华氏 9/11 (2004)
ruby-on-rails - Rails 3:订购在一个查询中使用 has_many 和 belongs_to 关联的查询
在我的 Rails 数据库方案中,有以下结构:
任务有很多工作工作属于一类
我想要实现的是加载所有任务以及按类别排序的所有相关作业。所以结果应该是这样的:
任务 1 作业 1 -> 类别 1 作业 3 -> 类别 2 作业 2 -> 类别 3
任务 3 工作 5 -> 类别 1 工作 9 -> 类别 2 工作 4 -> 类别 3
注意:类别的排序不是它们的ID,它是一个列。
目前唯一可行的解决方案是使用 Ruby 而不是 SQL 来排序作业,这非常糟糕。我只是偶然发现了 has_many 关联中的 :finder_sql 选项,但我不确定这是否可行。
ruby-on-rails - “不正确”与 Rails 3 查询或 meta_where
我需要的可能很简单:
Table.where('field is not true')
但我不知道这是如何使用 Rails 3 查询接口完成的,可能还有meta_where。问题是虽然 ":field.not_eq => nil" 正确转换为 "IS NOT NULL",但 ":field.not_eq => true" 变成 "!= 1",这显然与 "IS NOT TRUE" 不同"(mysql 和 postgresql 扩展)。
ruby-on-rails-3 - Rails 3:选择子模型具有一定条件的所有子模型
我的 Rails 数据库方案有项目和任务。我想展示至少有一个未完成任务的项目。这是我的代码:
此代码正确返回具有一项打开任务的项目,但仅返回一项打开任务而不是全部。例如,一个项目总共有 5 个任务和 2 个打开的任务,上面的代码将只返回具有 2 个任务的项目。我知道我可以简单地强制重新加载项目,但这非常hackish并且存在性能问题。如何获得包含所有任务的项目?
sql - 使用 Arel 生成子查询以获得平均值
假设我有几张桌子
一个经理有很多商店,一个商店有很多订单。
有一天,我想查询经理工作的订单的平均总数。哦,我想按商店分组。所以要明确一点,我想获得经理的平均订单总数,对于他们工作的每家商店。
假设我们已经查找了我们的经理:
是的,效果很好。但是我怎样才能查询这些平均值的平均值呢?
获取此查询的 Arel 是什么?
有人知道吗?
ruby-on-rails - 在活动记录中使用 arel 的关系计数
我很难从活动记录中弄清楚如何在 arel 中执行此查询以及其他类似的查询。
从表面上看,它看起来就像 Nik 的示例(http://magicscalingsprinkles.wordpress.com/2010/01/28/why-i-wrote-arel/):
但我无法使用活动记录在 Rails 中工作。我认为等价物应该是这样的,但它会出错:(
关于如何做的任何想法?