gpt4 book ai didi

ruby-on-rails - 通过 ActiveRecord::QueryMethods 进行查询并返回 ActiveRecord_Relation rails

转载 作者:行者123 更新时间:2023-11-29 13:47:59 24 4
gpt4 key购买 nike

我正在使用 select in with通过find_by_sql查询:

scope :error_percentage, -> (user_obj) {
find_by_sql("WITH products_boost_sum AS (SELECT *, (CASE WHEN (city_id =#{user_obj.user.city_id || -1}) THEN 1 ELSE 0 END) + (CASE WHEN (country_id =#{user_obj.country_id || -1}) THEN 1 ELSE 0 END) AS boost_sum FROM products) SELECT *, (CASE WHEN boost_sum = 2 THEN 2 ELSE 0 END) AS error_percentage FROM products_boost_sum")
}

这个作用域被其他作用域使用的问题。所以我需要返回 Active_Relation 对象而不是数组。我检查了 QueryMethods的 ActiveRecord,但我找不到 with 查询的方法。

如何使用 with 查询返回 ActiveRelation 对象?如果没有查询方法,是否可以通过 select 方法获得?

最佳答案

CTE 查询不受开箱即用的 Active Record 支持,但有一个 gem 添加了支持 https://github.com/DavyJonesLocker/postgres_ext .

然后你可以像这样查询

Score.with(my_games: Game.where(id: 1)).joins('JOIN my_games ON scores.game_id = my_games.id')

关于ruby-on-rails - 通过 ActiveRecord::QueryMethods 进行查询并返回 ActiveRecord_Relation rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45410887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com