未定义的方法`map&#39; for#<actioncontroller :: parameters> Rails 5.1

时间:2018-03-27 13:39:07

标签: ruby-on-rails ruby-on-rails-5.1

我正在将rails应用程序从3.2.2升级到5.1.4。 我通过使用params直接在map方法上得到错误。 错误:

  

未定义的方法`map&#39; for ActionController :: Parameters

在下一行。

@assignments= params[:assignments].map {|_k, value| Assignment.new(value.merge assignment_params)}

在rails 5.1中做任何替代方法吗?

1 个答案:

答案 0 :(得分:7)

您可以尝试使用to_unsafe_h

将参数转换为哈希值
@assignments= params[:assignments].to_unsafe_h.map {|_k, value| Assignment.new(value.merge assignment_params)}

或者,您可以使用each

迭代params
@assignments=[]
params[:assignments].each{|(_k, value)| @assignments << Assignment.new(value.merge assignment_params)}