问题标签 [squeel]

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 回答
13325 浏览

ruby-on-rails - Rails ActiveRecord::StatementInvalid: PG::Error: ERROR: missing FROM-clause entry for table

我有一个复杂的 ActiveRecord 查询,我正在使用不同的范围构建它,具体取决于用户选择。我正在使用 2 个 gem,这似乎是有问题的,但我找不到谁是罪魁祸首:Texticle(用于 Postgresql 完整搜索)(2.0.3)Squeel(用于 Active Record 查询中的 ruby​​ 语法)squeel(0.9. 5) Arel 或 Active Record 自己

这是我的类定义:

最后,我的查询:

*这是一个 ActiveRecord::Relation 对象,使用 to_a 调用它时会崩溃

这给了我以下错误:

  • Active Record 和 ARel 是否全权负责实现完整的 sql 语句?
  • 为什么 to_sql 不会产生相同的结果?
  • 有什么方法可以强制(不提供完整的 OUTER JOIN 语法)连接名称?

  • 我怎样才能确保捕获有问题的部分以填写正确的错误报告?我在调试器中迷失了方向,试图找出哪段代码写入了不正确的连接语句 || 或带有无效连接关联名称的不正确 SELECT 子句。

谢谢

0 投票
0 回答
237 浏览

ruby-on-rails - 使用 Squeel 自定义查询两个属性与有序对的相等性

我在编写查询时遇到困难,无论是否使用 SQL,但我希望能够使用 gem Squeel 用 ruby​​ 编写它。基本上,我有一堂课:

我想要一个范围,它接收格式的有序对数组(genre_id, publisher_id)并输出一个ActiveRecord::Relation包含所有类型的记录,发布者对等于传入的对。

基本上,我想要Article.where{ genre_id.eq_any [1, 5, 76] },除了不是单个属性,我希望它在一对属性上:

我能想到的唯一方法是使用 select 调用创建一个范围,该调用添加一个列,该列将两个 id 与一些分隔符连接,然后基于此进行搜索:

但是,这似乎开销太大。我也已经有一个关于 [genre_id, publisher_id] 的复合索引,恐怕这不会使用该索引,这将是我的要求。

有没有更简单的方法来编写这些复合作用域?谢谢!

0 投票
2 回答
572 浏览

ruby-on-rails-3 - Rails 3 - 如何查询与squeel的多态belongs_to关联?

我正在为我的问题/答案应用程序使用acts_as_votable 。每个问题和每个答案都可以投票(à la stack overflow)。

我正在使用squeel并寻找一种方法来获得以下信息:将问题从投票最多的问题排序到投票较少的问题;对于每个问题,从投票最多到投票较少的顺序排列答案。

最好的squeel查询应该是什么?

0 投票
1 回答
92 浏览

sinatra - 在 Sinatra 中使用 Squeel 或 Meta_where

我在 Sinatra 中使用 ActiveRecord 的东西,我想知道它是否适用于 meta_where 或(最好是)squeel?

我将开始尝试,但我希望也许有人可以让我短路。

0 投票
1 回答
1169 浏览

ruby-on-rails - squeel 中的嵌套查询

简短版本:如何在 squeel 中编写此查询?


长版:rocket_tag是一个为模型添加简单标记的 gem。它添加了一个方法tagged_with。假设我的模型是User,带有 id 和名称,我可以调用User.tagged_with ['admin','sales']. 它在内部使用这个 squeel 代码:

生成此查询:

一些 RDBMS 对此感到满意,但 postgres 抱怨:

我相信编写查询的更合适的方式是:

有什么方法可以用 squeel 来表达吗?

0 投票
1 回答
731 浏览

ruby-on-rails - ruby on rails 3 - 使用 gem 进行高级搜索

我有一个用户模型,其中包含本地、Skype 和电话(布尔值,“t”或“f”)和性别(字符串,“男”或“女”)的列。每个用户可以在关联的 SkillMap 模型中拥有许多技能,该模型具有 Skill_id 和方向(字符串,“Teach”或“learn”)

我一直在搞乱 MetaWhere、Squeel 和 RanSack,试图找出哪一个可以让我以最好的、最易读的和最像 rails 的方式搜索这些用户。谁能给我指出最合适的宝石,或者给我一些关于如何构建它的提示?

目前,每次执行搜索时,都会在搜索表中创建一个像下面这样的对象(抱歉格式不好,我不知道如何保存没有这些破折号的数组)

因此,在这种情况下,我想找到任何使用 Skype 或本地标志为真的用户(忽略电话 = 'f'),谁的性别标志是“男性”,并且谁有一个相关的技能地图,其中方向 = '教'和技能 ID = 795,并且谁有一个技能图,其中方向 = '学习' 并且技能 ID 在 (789,771,827)

我可以尝试编写 SQL,如果这会使它更清晰,但我只知道如何使用糟糕的子查询来完成它(DBA 可能想跳过这部分)

如果这些字段中的任何一个为空白或错误​​,我不想将它们作为搜索条件包含在内。

无论如何,这是我的问题。感谢您的关注!

干杯,约拿

0 投票
1 回答
256 浏览

ruby-on-rails - ActiveRecord,仅具有 nil 父记录的对象

我已经建立了一个基本的论坛。我希望 posts#index 操作仅显示 parent_post_id 为 nil 的记录,因此不显示回复帖子。我已经安装了squeel,但我不确定我是否设置正确。

0 投票
1 回答
231 浏览

ruby-on-rails - 尝试 Squeel 但符号似乎不起作用

我正在尝试以下查询

但出现以下错误

语法错误,意外的 '}',期待 tASSOC(问题!~ params[:excludes])})

以及其他线路

但是squeel doc说要做:

ps,我发现了。第一个发现它也会打勾。

0 投票
1 回答
326 浏览

ruby-on-rails - 如何在 squeel 中动态处理 where 条件?

从这个输入: {'hearing' => 1} 我需要生成这个查询

从这个输入是 {'hearing' => 1, 'mobility' => 2},我需要生成这个:

等等...

这怎么能概括?因为我的输入有时有 3 或 4 个键...有时 1...

0 投票
1 回答
714 浏览

ruby-on-rails - 对 Squeel 使用 NOT

假设我有一组条件:

...这将生成如下 SQL:

如何反转返回的集合,即更新 Squeel 以返回以下 sql:

这有点做作,因为我的问题还涉及一组动态生成的条件 - 我无法更改实际条件,只需要将它们包装在 NOT() 中。

有人对在哪里看有任何想法或建议吗?