散列或数组上的强参数

Strong params on a hash or array

在 rails 我在 一个模型 中做了这个:

  def update_user_ex(*attrs)
    user.assign_attributes(*attrs) 
    # .............

其中 attrs 是一个 数组 和一个散列,为简单起见,我们假设它是一个散列。

如何在 Rails 4 中执行此操作? "permit" 不适用于散列或数组。

根据 https://github.com/rails/strong_parameters

中的文档,可以在控制器外部使用强参数

示例:

def update_user_ex(*attrs)
  params = ActionController::Parameters.new(attrs)
  user.assign_attributes(params.permit(:name, :email, :something_else)) 

允许在 rails 4 中对数组进行操作。但是数组必须是最后一个参数。

params.require(:test).permit(:name,:rollno, question_ids:[])

下面的例子给出了错误,因为数组不是最后一个参数。

params.require(:test).permit(question_ids:[], :rollno)