【问题标题】:strong parameters for dynamic keys动态键的强参数
【发布时间】:2016-06-23 09:36:57
【问题描述】:

下面是我的参数,如何写强参数?

"foo" => {"54" => {"name" => "test", "age" => "10"}, "93" => {"name" => "test3", "age" => "20"}}

除了下面的,还有什么可以写的吗?

def foo_params
  params.permit(foo: [:name,:age])
end

【问题讨论】:

  • 您可以使用params.permit!。这只是一种方式,因为您的数据是动态的。
  • 为什么需要发送这些号码?我的意思是,54 键会变成什么?是身份证吗?
  • 是的,它是 ID,这里我给出了示例数据。但在项目中我无法更改参数。这就是我在问这个。

标签: ruby-on-rails strong-parameters


【解决方案1】:

你可以试试这个

params.permit(foo: [:name, :age]).require(:foo)

【讨论】:

    【解决方案2】:

    你可以试试这个:

    params.permit(:foo => {"54" => [:name, :age], "93" => [:name, :age]})
    

    【讨论】:

    • 他的意思是动态数据,所以这些数字会在每个请求中改变
    • lcguida 你是对的。 54,93 是动态键,不可预测
    【解决方案3】:

    就我而言,我有参数

    "products"=>{"0"=>{"title"=>"item1", "price"=>"123123"}, "1"=>{"title"=>"item2", "price"=>"123123"}}
    

    我尝试过的

    params.require(:products).permit =>
    
    Unpermitted parameters: :0, :1
    <ActionController::Parameters {} permitted: true>
    

    解决方案

    params.require(:products).permit! =>
    
    <ActionController::Parameters {"0"=><ActionController::Parameters {"title"=>"item1", "price"=>"123123"} permitted: true>, "1"=><ActionController::Parameters {"title"=>"item2", "price"=>"123123"} permitted: true>} permitted: true>
    

    【讨论】:

      猜你喜欢
      • 2017-05-03
      • 2017-12-29
      • 1970-01-01
      • 2015-06-18
      • 2011-10-24
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多