#<ActionController::Parameters> Rails 5.1 的未定义方法“map”
undefined method `map' for #<ActionController::Parameters> Rails 5.1
我正在将我的 rails 应用程序从 3.2.2 升级到 5.1.4。
我直接在参数上使用 map 方法时遇到错误。
错误:
undefined method `map' for ActionController::Parameters
在下一行。
@assignments= params[:assignments].map {|_k, value| Assignment.new(value.merge assignment_params)}
在 rails 5.1 中有任何替代方法吗?
您可以尝试使用 to_unsafe_h
:
将参数转换为散列
@assignments= params[:assignments].to_unsafe_h.map {|_k, value| Assignment.new(value.merge assignment_params)}
或者,您可以使用 each
:
迭代参数
@assignments=[]
params[:assignments].each{|(_k, value)| @assignments << Assignment.new(value.merge assignment_params)}
我正在将我的 rails 应用程序从 3.2.2 升级到 5.1.4。 我直接在参数上使用 map 方法时遇到错误。 错误:
undefined method `map' for ActionController::Parameters
在下一行。
@assignments= params[:assignments].map {|_k, value| Assignment.new(value.merge assignment_params)}
在 rails 5.1 中有任何替代方法吗?
您可以尝试使用 to_unsafe_h
:
@assignments= params[:assignments].to_unsafe_h.map {|_k, value| Assignment.new(value.merge assignment_params)}
或者,您可以使用 each
:
@assignments=[]
params[:assignments].each{|(_k, value)| @assignments << Assignment.new(value.merge assignment_params)}