如何允许所有参数,即使它们是空白的?

How do I allow all parameters even if they are blank?

我有以下内容:

def index
  @dealFilter = DealFilter.new params[:deal_filter].permit(deal_filter: {})

给定参数时有效,但缺少参数时无效。它给出 undefined method ``permit' for nil:NilClass Did you mean? print 错误。我希望它在这两种情况下都能工作。

如果参数为空,我们需要使用fetch:

为其设置一个默认值

params.fetch(:deal_filter, {}).permit(:some_params)

这样 params[:deal_filter] 在缺少时会变成 {}

根据你的错误,最终代码应该是:

params.fetch(:deal_filter, {}).permit(:min, :max, :sector_id)