5

首先,我知道 wice_grid gem 目前不支持 rails 5。因此,网络上已经存在一些问题。

但是现在我不能回去,因为我正处于我的网络应用程序开发的中间。

问题:

我想要一个在我的应用程序中具有过滤器属性的简单数据网格。下面是我的代码:

客户控制器.rb

class CustomersController < ApplicationController
  layout "themeLayout"
  before_action :permit_params

  def index
    @grid = initialize_grid(Customer)
  end

  def permit_params
    params.permit!
  end
end

index.html.erb

   <%= grid(@grid) do |g|

    g.column name: 'Id' do |task|
      task.id
    end

    g.column name: 'Name', attribute: 'name'  do |task|
      task.name
    end

    g.column name: 'Company Name', attribute: 'company_name' do |task|
      task.company_name
    end

end %>

日志文件

to_hash 意外地忽略了参数过滤,并将在 Rails 5.1 中强制执行它。

启用raise_on_unfiltered_parameters以尊重参数过滤,这是新应用程序中的默认设置。

对于现有的弃用行为,请改为调用 #to_unsafe_h。

弃用警告:num_pages 已弃用,将在 Kaminari 1.0 中删除。请改用 total_pages。

以上代码按要求生成数据网格,但无法显示过滤结果。

根据我的主要调试,我发现 params 具有 null 值,这会导致此错误。

任何指针将不胜感激......

4

1 回答 1

6

按照警告并添加

config.action_controller.raise_on_unfiltered_parameters = true

到 config/application.rb

在此之后 .to_hash 将仅转换允许的参数。

于 2017-06-29T15:44:29.907 回答