问题标签 [find-by-sql]

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 投票
1 回答
803 浏览

ruby-on-rails-3 - 将 find_by_sql 与 RSPEC 一起使用时缺少属性

我使用在开发中运行良好的 find_by_sql 语句。当涉及到使用规范的测试环境时,它会输出错误:

ActiveModel::MissingAttributeError:缺少属性:已注册

我已经运行 db:test:purge 和 db:test:prepare 来清理测试数据库。但错误仍然发生。在开发和测试中,我使用 PostgreSQL。

有问题的陈述如下:

0 投票
1 回答
8365 浏览

ruby-on-rails-3 - 在 Rails 3 中使用数组格式的 find_by_sql

美好的一天,伙计们!

我在 rails 3 中使用find_by_sql()来获取记录,如下所示。

如果多个参数适用于同一属性,如何修改同一语句,例如:

在这里,sent_idfrom_id属性都接收相同的参数params[:id]

那么,除了传递相同的params[:id]两次之外,是否有任何机制可以根据顺序传递参数?

0 投票
1 回答
116 浏览

sql - Rails find_by 在较低的层次结构级别

我有以下型号:

现在,我想通过一条生成单个 SQL 的语句,从给定公司的任何项目中获取下一个截止日期。

IE

我不想要的是遍历所有公司员工并检查下一个截止日期,为每个员工访问一次数据库。

有没有比 find 命令更优雅的

0 投票
1 回答
1002 浏览

mysql - ruby on rails MySQL 服务器版本,以便在 '? 附近使用正确的语法 find_by_sql

看法:

我收到以下错误:

我基本上想要的是获得我喜欢的帖子

0 投票
4 回答
2485 浏览

mysql - Rails & MySQL - 如何在 rails 的 find_by_sql 中使用 LIKE 运算符和 %?

如何删除变量周围的引号,以便可以在 rails 的 find_by_sql 中使用 LIKE 运算符?

将产生

什么时候@something = 'hello'

0 投票
1 回答
312 浏览

ruby-on-rails - 如何在 Rails 中使用与 find_by_sql 的关联?

我有一个很长的 SQL 查询,我在 rails Model.find_by_sql 中使用它,我必须在该查询中添加几个条件,就像我想获取 parent.is_allowed 为真的所有记录一样。

这意味着我正在获取所有子元素,并且我想使用子元素和父元素之间的关联。在子表中,我们有 parent_id。

谢谢

0 投票
1 回答
398 浏览

ruby-on-rails-3.2 - 如何使用 find_by_sql 检索 BigDecimal?

我正在使用 postgreSQL 进行求和,并希望对结果进行一些计算,但 rails 返回一个字符串而不是 bigdecimal 并拒绝将其转换为 bigdecimal。

这是我的 find_by_sql 和计算代码:

产生以下错误:

=== 更新 ===

下面的答案给了我一个想法:我的模型 ProjMesure 确实有一个BigDecimal 属性(montant_reference)。因此,我没有用任意名称(总计)命名我的总和,而是使用了 BigDecimal 属性的名称 : SUM(c.montant) AS montant_reference

这个技巧可以自动将字符串解析为 BigDecimal。仅当您不打算在查询结果中使用此属性时才有可能。

我的新 SQL 请求:

0 投票
1 回答
605 浏览

ruby-on-rails - 为什么 find_by_sql 不能与 PostgreSQL 一起使用?

我有一个 PostgreSQL 查询,它按月汇总值,从日期中提取月份值:

直接在 DB 控制台中执行查询后,我得到如下信息:

使用 Rails 的find_by_sql功能时会出现问题。和值正确返回,但日期值返回为零vendorinvoice_total

这是我的电话。我什至尝试过硬编码值,但什么都没有,但就像 Extract 函数不会在 Rails 中执行:

我已经进行了一些调试,并且我传递的值不是零也不是错误的。

0 投票
1 回答
89 浏览

sql - find_by_sql 更改别名列的数据类型

一个基本的 ActiveRecord 查询返回一个不带引号的 id,例如:

User.first.attributes => {"id"=>2, ...

在 find_by_sql 中,别名列与引号中的值一起返回,在这种情况下参见 id:

all = User.find_by_sql("SELECT u.id as u_id from users u").first.attributes => {"u_id"=>"2"}

如何避免引用值?

0 投票
1 回答
490 浏览

sql - Rails 自定义 SQL 查询不适用于 find_by_sql

我的 Rails 应用程序中有三个 Tables 用户 user_groups 和 user_groups_users。现在,我编写了一个 SQL 查询

提取那些 user_group_id,它恰好具有输入提供的 user_ids。在这种情况下,1,4 将作为 ruby​​ 数组 [1,4] 提供。

现在,我想为我的 rails 应用程序编写这个 SQL 查询。但是,当我find_by_sql在 rails 中使用语句执行此查询时,它会返回正确的编号。特定 user_id 所属的 user_groups,但结果不显示 user_group_id。

=> [#<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >]

那么我如何从中提取 User_group_id 。

但是,当我通过直接连接到数据库来执行查询时。我得到了想要的结果

sql = "SELECT user_group_id FROM user_groups_users WHERE user_id IN (1,2) GROUP BY user_group_id HAVING Count(DISTINCT user_id) = 2;"

records_array = ActiveRecord::Base.connection.execute(sql)

但是,这里的问题是,我将如何使用字符串替换技术来使用作为输入的 user_ids。