我一直在研究這行代碼三天。 我有以下的強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。我不能v方法param_clean
def param_clean
location_params.delete_if{ |k, v| v.empty? or v.instance_of?(ActionController::Parameters) && v.param_clean.empty? }
end
我收到以下錯誤
undefined method `param_clean' for #<ActionController::Parameters:0x007f..>
這是location_params值調用
<ActionController::Parameters {"country"=>"", "ads_attributes"=><ActionController::Parameters {"remote"=>"0", "days"=>""} permitted: true>} permitted: true>
這就是價值v
錯誤觸發時變量
<ActionController::Parameters {"remote"=>"0", "days"=>""} permitted: true>
v.class => ActionController::Parameters
該方法不適用於嵌套參數。 非常感謝您的幫助
問候 法布里奇奧
難道我的解決方案制定出你:做這將是如下的一種方式? – Aegis
我必須測試,我剛醒來。非常感謝 –