will_paginate with Ransack导致参数错误

时间:2018-05-30 16:03:32

标签: ruby-on-rails will-paginate ransack

我在rails 5.2 app中使用了will_paginate gem和ransack gem。当我搜索或排序时,我收到以下错误:

unable to convert unpermitted parameters to hash

突出显示的代码行是:

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

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

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

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

有没有人在will_paginate的github上创建一个解决问题的分叉?

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

1 个答案:

答案 0 :(得分:1)

您可以在覆盖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