相关疑难解决方法(0)

DEPRECATION WARNING:使用非属性参数调用的危险查询方法(其参数用作原始SQL的方法)

我将rails 5.1.4 app更新为5.2.0.我的一个模型中有以下范围:

  scope :by_category, lambda { |category_slug|
    category_ids = Category.find_by(slug: category_slug)&.subtree_ids
    where(category_id: category_ids)
  }
Run Code Online (Sandbox Code Playgroud)

由于该范围,Rails返回错误:

DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "coalesce(\"categories\".\"ancestry\", '')". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql()
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

ruby ruby-on-rails ruby-on-rails-5.2

8
推荐指数
1
解决办法
2020
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1

ruby-on-rails-5.2 ×1