will_paginate 与 Ransack 导致参数错误

will_paginate with Ransack causes parameters error

我在 rails 5.2 应用程序中使用 will_paginate gem 和搜索 gem。当我搜索或排序时,出现以下错误:

unable to convert unpermitted parameters to hash

突出显示的代码行是这样的:

tag :li, link(page, page, :rel => rel_value(page)), class: classes

Ransack 的好人有他们自己的 will_paginate 分支来解决这个问题。但是,那个叉子不包括非常好的 page_entries_info

使用 page_entries_info 给出关于数组的错误。

有人用 will_paginate 和 Rails 5.2 解决了这些问题吗?

是否有人在 will_paginate 的 github 上创建了解决此问题的分支?

我很乐意做出贡献。谢谢!

您可以在覆盖 symbolized_update 方法的地方创建初始化。

WillPaginate::ViewHelpers::LinkRenderer.class_eval do
  def symbolized_update(target, other, blacklist = nil)
    other.each_pair do |key, value|
      key = key.to_sym
      existing = target[key]
      next if blacklist && blacklist.include?(key)

      if value.respond_to?(:each_pair) and (existing.is_a?(Hash) or existing.nil?)
        symbolized_update(existing || (target[key] = {}), value)
      else
        if value.instance_variable_defined?(:@parameters)
          value = value.instance_variable_get(:@parameters)
        end
        target[key] = value
      end
    end
  end
end