综观the documentation for ActionController::Parameters for the require
method我读followiing轨道4 - 的ActionController不能要求2个键
当给定键的阵列,所述方法试图需要它们中的每一个在次序。如果成功,返回了各自的返回值的数组:
params = ActionController::Parameters.new(user: { ... }, profile: { ... }) user_params, profile_params = params.require(:user, :profile)
但是当我rails console
运行此代码,我的输出是非常不同的
[70] pry(main)> params = ActionController::Parameters.new(user: { a: 1 }, profile: { b: 2 })
=> {"user"=>{"a"=>1}, "profile"=>{"b"=>2}}
[71] pry(main)> user_params, profile_params = params.require(:user, :profile)
ArgumentError: wrong number of arguments (2 for 1)
from /home/myuser/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/actionpack-4.2.1/lib/action_controller/metal/strong_parameters.rb:244:in `require'
当我读到when given an array of keys
和锯这个例子,我认为写这个例子时他们可能犯了一个错误,所以我也尝试了这个,但它也不起作用。
[72] pry(main)> user_params, profile_params = params.require([:user, :profile])
ActionController::ParameterMissing: param is missing or the value is empty: [:user, :profile]
from /home/myuser/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/actionpack-4.2.1/lib/action_controller/metal/strong_parameters.rb:249:in `require'
这是怎么回事?
OUCH!感谢那!你碰巧知道一种方法来实现Rails 4? –
不幸的是我没有,对不起。 – sevenseacat