【问题标题】:Include key/value pairs and single values in a hash在哈希中包含键/值对和单个值
【发布时间】:2015-12-22 05:57:41
【问题描述】:

我有一个包含字段的嵌套属性表单:

  • 巢[attr1][]
  • 巢[attr2][]
  • 巢[attr3]

(注意第三个属性不是数组)

在我的控制器中,强参数如下所示:

params.require(:campaign).permit(
  :somevalue,
  nests_attributes: {
    attr1: [],
    attr2: [],
    :attr3
  }
)

这当然行不通,因为attr1attr2 使用键/值对来建立数组,而attr3 是允许的单个值。

如何同时使用?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 nested-attributes


    【解决方案1】:

    鉴于此参数:

    {"campaign"=>{"somevalue"=>1, "nest"=>{"attr1"=>[1, 2, 3], "attr2"=>[1, 3, 4], "attr3"=>3}}}
    

    你可以这样做:

    params.require(:campaign).permit(
      :somevalue,
      nest: [:attr3, attr1: [], attr2: []]
    )
    

    您可能会觉得看到 []attr1: [] 里面很奇怪,但它在 Ruby 中是完全有效的语法。它将被解释为:

    [:attr3, {:attr1=>[], :attr2=>[]}]
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2018-06-10
      • 2016-08-19
      • 2021-07-04
      • 2015-11-12
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      相关资源
      最近更新 更多