【问题标题】:Rails 6.1 Scope merge/joinRails 6.1 范围合并/加入
【发布时间】:2021-04-10 22:21:06
【问题描述】:

谁能给我指点说明如何在 Rails 6.1 中进行合并范围的文档?

在 6.1 之前,以下工作:

class Product < ApplicationRecord
  has_many :inventories, dependent: :destroy
  scope :available, -> { joins(:inventories).merge(Inventory.available).group('products.id') }

(给所有具有正库存价值的产品)

class Inventory < ApplicationRecord
  belongs_to :product, touch: true
  scope :available, -> { where('number_available > 0') }

现在,我收到以下错误:

ArgumentError(参数数量错误(给定 3,预期 2))

任何帮助将不胜感激,谢谢:)

【问题讨论】:

  • 您确定错误在范围内吗?类似的范围对我来说效果很好。
  • 你得到的完整错误是什么?

标签: ruby-on-rails activerecord ruby-on-rails-6


【解决方案1】:

我在从 Rails 6.0 更新到 6.1 时遇到了类似的错误。

我通过将ransack gem 升级到 >= 2.4.0 的版本解决了这个问题:

# Gemfile

gem 'ransack', '~> 2.4.0'

ransack gem 的旧版本与 Rails 6.1 不兼容。这是增加对 Rails 6.1 支持的拉取请求: https://github.com/activerecord-hackery/ransack/pull/1172

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多