Col*_*bri 5 ruby ruby-on-rails ruby-on-rails-5
文档:https://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-dig
我运行rails c并写下这个:
params = ActionController::Parameters.new(foo: { bar: { baz: 1 } })
Run Code Online (Sandbox Code Playgroud)
并进一步:
params.dig(:foo, :bar, :baz)
Run Code Online (Sandbox Code Playgroud)
这两行是我从页面上截取的,上面给出了链接。
结果,我得到了nil。
工作时Hash一切都很好。使用时出现问题ActionController::Parameters。我在 Rails 应用程序中遇到了这个问题。
需要您对此的意见。
小智 2
ActionController::Parameters 是 Hash 的子类,您可以使用 params 哈希上的 to_h 方法将其直接转换为哈希。
但是 to_h 仅适用于白名单参数,因此您可以执行以下操作:
params = ActionController::Parameters.new(foo: { bar: { baz: 1 } })
params.permit!
params.to_h.dig(:foo, :bar, :baz)
Run Code Online (Sandbox Code Playgroud)
但如果您不想列入白名单,那么您只需要使用 to_unsafe_h 方法。
| 归档时间: |
|
| 查看次数: |
3269 次 |
| 最近记录: |