2015-12-22 24 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=>[]}]