ruby-on-rails - 不推荐将 ast 委托给 arel
问题描述
我在 Rails 5.1 应用程序中有以下内容
class Products::LinkableToEvent
ProductTable = Product.arel_table
EventTable = Event.arel_table
def self.call(slug)
Product.all.
where(ProductTable[:id].in(ProductTable.project(ProductTable[:id])
.except(Product.select(:id)
.joins("INNER JOIN events ON (products.id =
ANY(events.product_ids))")
.where(EventTable[:slug].eq(slug))
.unscope(:order))))
end
end
这会产生以下警告。
弃用警告:将 ast 委托给 arel 已被弃用,并将在 Rails 6.0 中删除。(从 /em/app/queries/products/linkable_to_event.rb:8 调用)
8号线是.except(Product.select(:id)
如何删除警告?
解决方案
推荐阅读
- angular - Angular File Input 所选文件未显示
- mips - MIPS 嵌套过程
- java - 交易块之外会发生什么?
- c# - 如何增加 CalendarDatePicker 的日历图标大小并使用不同的文本或图像图标 [UWP] 对其进行自定义?
- c++ - 访问 range_expression 中的嵌套元素会返回不完整的映射(段错误)
- node.js - Nodejs 错误:“用户对此配置文件没有足够的权限”
- c# - 如何遍历数组并开始以随机间隔从数组中旋转立方体?
- java - Java BufferedReader IO 错误。流关闭
- python - 将日志级别设置为 logging.DEBUG 或 logging.INFO 无效
- java - 在 OpenJDK 上运行时加载 java 代理?