散列或数组上的强参数

时间:2016-09-22 18:41:34

标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters

在rails中,我在模型

中执行了此操作
  def update_user_ex(*attrs)
    user.assign_attributes(*attrs) 
    # .............

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

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

2 个答案:

答案 0 :(得分:0)

根据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)) 

答案 1 :(得分:0)

允许在rails 4中的数组上工作。但是数组必须是最后一个参数。

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

以下示例给出错误,因为数组不是最后一个参数。

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