Мы находимся в процессе обновления до Rails 5.1.0 с Rails 4.2.2, и мы заметили, что .except!()
больше не является методом для параметров.Существует .except()
без взрыва, но это не работает во всех наших случаях.В приведенных ниже примерах survey_params
имеет тип Parameter
.
@survey.update(survey_params.except!(:user_roles)) # Rails 4.2.2
Два решения, с которыми я пришел:
Создайте одноразовую переменную для принятиярезультаты un-banged .except()
, как это:
clean_params = survey_params.except(:user_roles)
А затем использовать его в обновлении так:
@survey.update(clean_params)
Используйте .to_h
, чтобы преобразовать его в хеш, который, кажется, все еще имеет .except!
@survey.update(survey_params.to_h.except!(:user_roles))
Оба работают, но я 'Мне интересно, если один лучше, чем другой, или есть лучший способ, чем любое из этих решений?Потому что оба чувствуют себя как исправленные ошибки.