私はこのコード行を3日間作業しています。私は次のように強いのparams持っ :Rails - ネストされた属性から空のフィールドを削除する強力なパラメータ
def location_params
params.require(:location).permit(:country, {:ads_attributes => [:remote, :days]})
end
方法param_cleanはlocation_params空のフィールドから削除されますが、それは、ネストされたでは動作しません:をads_attributes。 主な理由は、param_cleanは、location_paramsで呼び出すことができます。このクラスは、ActiveController :: Parametersです。私は、これはこれはの値であるlocation_params
<ActionController::Parameters {"country"=>"", "ads_attributes"=><ActionController::Parameters {"remote"=>"0", "days"=>""} permitted: true>} permitted: true>
の値である私は、次のエラーメッセージが表示さ
def param_clean
location_params.delete_if{ |k, v| v.empty? or v.instance_of?(ActionController::Parameters) && v.param_clean.empty? }
end
方法にVに
undefined method `param_clean' for #<ActionController::Parameters:0x007f..>
をparam_clean
を呼び出すことはできませんv
エラーが発生したときの変数
<ActionController::Parameters {"remote"=>"0", "days"=>""} permitted: true>
v.class => ActionController::Parameters
このメソッドは、ネストされたパラメータでは機能しません。あなたの助けのための おかげでたくさん
よろしく ファブリツィオ
うまくましたか? – Aegis
私はテストする必要があります、私はちょうど目を覚ました。ありがとうございました –