Rails 5参数和to_h

时间:2018-10-18 23:01:17

标签: parameters ruby-on-rails-5 upgrade

我们正在从Rails 4.2.2升级到Rails 5.1.0的过程中,我们注意到.except!()不再是Parameters的方法。有.except()没有爆炸声,但这在我们所有情况下都不起作用。在下面的示例中,survey_params的类型为Parameter

@survey.update(survey_params.except!(:user_roles)) # Rails 4.2.2

我附带的两个解决方案是:

  1. 制作一个抛出变量,以接受未敲打的.except()的结果,如下所示:

    clean_params = survey_params.except(:user_roles)

然后像这样在更新中使用它:

@survey.update(clean_params)
  1. 使用.to_h将其转换为似乎仍然有.except!

    的哈希

    @survey.update(survey_params.to_h.except!(:user_roles))

这两种方法都可以,但是我想知道一种解决方案是否比另一种更好?因为两者都感觉像是创可贴。

0 个答案:

没有答案