gpt4 book ai didi

ruby-on-rails - Rails params.require 空哈希

转载 作者:行者123 更新时间:2023-12-04 03:34:41 26 4
gpt4 key购买 nike

在我的一个 Controller 中,我有一行:

params.require(:ad).permit(permitted_array)

params[:ad] 是一个哈希值。当此哈希中存在允许的键时,此行可以正常工作。当 params[:ad] 为空哈希时,上述行失败。

示例:params

{"ad"=>{}, "controller"=>"ads", "action"=>"create"}

在调用 params.require(:ad) 后出现此错误:

ActionController::ParameterMissing:
param is missing or the value is empty: advertiser

但这很好用:

[2] pry()> params
=> {"ad"=>{"name"=>"kjj", "ad_type_id"=>1, "fee"=>"9", "click_attr"=>"8", "imp_attr"=>"7"}, "controller"=>"ads", "action"=>"create"}
[3] pry()> params.require(:ad).permit(permitted_array)
=> {"name"=>"kjj", "ad_type_id"=>1, "fee"=>"9", "click_attr"=>"8", "imp_attr"=>"7"}

我怎样才能让这一行接受空哈希?

最佳答案

使参数 require 有条件,仅在存在时才需要 key ,如下所示:

params.require(:ad).permit(permitted_array) if params[:ad].present?

关于ruby-on-rails - Rails params.require 空哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com