【发布时间】:2018-12-28 11:50:39
【问题描述】:
文档:https://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-dig
我运行rails c 并写下这个:
params = ActionController::Parameters.new(foo: { bar: { baz: 1 } })
还有:
params.dig(:foo, :bar, :baz)
这两行是我从页面中提取的,上面给出了链接。
结果,我得到了nil。
使用Hash 时一切正常。使用ActionController::Parameters 时出现问题。我在 Rails 应用程序中遇到了这个问题。
需要您对此发表意见。
【问题讨论】:
-
@AlekseiMatiushkin
params.dig(*%w[foo bar baz]) => nilnope :( 我尝试了字符串和符号,并将它们组合在一起...... -
刚刚复制并粘贴了您的代码,它返回
1。你用的是什么版本的rails? -
@P.Boro
ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-darwin17]和Rails 5.2.2。 -
params.to_unsafe_h.dig(:foo, :bar, :baz)?,想知道不安全的部分。 -
请看here,ActionController::Parameters 从 Rails 4 到 Rails 5 发生了一些变化。
标签: ruby-on-rails ruby ruby-on-rails-5