ruby-on-rails - 在 ActionController::Parameters 上调用 assert_valid_keys 适用于 Rails 5.0 但不适用于 5.1?
问题描述
我有一些在 Rails 5.0.7.2 中运行良好但在 5.1.7 中运行良好的代码:
params.stringify_keys.assert_valid_keys(valid_keys)
其中 params 是一个ActionController::Parameters
对象。
在 Rails 5.0.7.2 中它可以工作。在 5.1.7 中,我收到以下错误:
undefined method `assert_valid_keys' for <ActionController::Parameters {"number"=>"123"} permitted: true>:ActionController::Parameters
似乎如果我转换为散列,那么这是可行的,但其他事情最终会破坏这条线,所以我宁愿将参数保留为一个ActionController::Parameters
对象,而不是将其转换为散列。
# If I use .to_h then I can call assert_valid_keys
# but other things break down the line...best to keep
# as ActionController::Parameters instead of Hash
params.stringify_keys.to_h.assert_valid_keys(valid_keys)
知道为什么我不能在 Rails 5.1 中调用对象吗.assert_valid_keys
?ActionController::Parameters
提前致谢!
解决方案
推荐阅读
- google-sheets - 如果单元格为空白,如何将单元格留空?
- angular - 角度数据过滤器网格
- python - 如何通过 csv 文件读取 Python 字典中的对应值?
- c# - 如何在 C# 中使用密钥和 MD5 算法散列字符串?
- javascript - 尝试在条带中更新订阅时的 payment_intent_unexpected_state 错误
- http - 带有 Lwip 堆栈的 Http 服务器
- azure - 自签名证书不适用于自托管网关
- python - Python 存储来自 api(json) 的数据帧
- cypress - 赛普拉斯测试运行器视口未反映 cypress.json 中定义的值
- google-sheets - 谷歌表格匹配索引数组公式