私は私が取得することにslice
またはpermit
を呼び出すことができますActionController :: Parametersでsliceとpermitを使用するのはいつですか?
params = ActionController::Parameters.new(a: 1, b: 2, c: 3)
ようActionController::Parameters
オブジェクトを持っていると仮定すると/のみ特定のパラメータを許可します。一見
、彼らは同じこと
> params.slice(:a)
=> {"a"=>1}
> params.permit(:a)
[18:21:45.302147] Unpermitted parameters: b, c
=> {"a"=>1}
を返す。しかし、私はそれにto_h
を呼び出す場合params.permit(:a).to_h
はキー:a
でハッシュを返しながら、空のハッシュを返しますparams.slice(:a).to_h
。私が理解している限り、:a
は許可されていないため、これが該当します。
permit
を使用すれば、slice
のユースケースは何ですか?
'slice'もActionController :: Parametersのインスタンスを返します。また、そのクラスが強力なパラメータのために導入されたので、なぜHashクラスのRailsの拡張であるスライスメソッドを使うべきなのでしょうか。純粋なハッシュの場合、私はそれを持つことが理にかなっていることに同意します。 –