неопределенный метод `map' для #‹ActionController::Parameters› Rails 5.1

Я обновляю свое приложение rails с 3.2.2 до 5.1.4. Я получаю ошибку в методе карты, используя параметры напрямую. Ошибка:

неопределенный метод `map' для ActionController::Parameters

На следующей строке.

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

Любая альтернатива сделать это в рельсах 5.1?


person Zia Qamar    schedule 27.03.2018    source источник


Ответы (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)}
person MrShemek    schedule 27.03.2018
comment
to_unsafe_h работает, а метод ниже нет, каковы результаты? - person Zia Qamar; 27.03.2018
comment
@ZiaQamar Я обновил свой ответ, была ошибка (results вместо @assignments) - person MrShemek; 27.03.2018