2015-12-22 70 views
0

我有一个嵌套的实体形式,它包括以下字段:包含在散列键/值对和单个值

  • 窝[attR1位] []
  • 窝[attR2位] []
  • 巢[attr3]

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

以我CONTRO米勒,强PARAMS如书面:

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

此,当然,不工作,因为attr1attr2使用键/值对建立该阵列,而attr3是允许一个单一的值。

我该如何使用两者?

回答

1

鉴于这种PARAMS:

{"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=>[]}]