在哈希中包含键/值对和单个值

时间:2015-12-22 05:57:41

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

我有一个嵌套的属性表单,其中包含以下字段:

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

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

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

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

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

我如何同时使用两者?

1 个答案:

答案 0 :(得分:1)

考虑到这个参数:

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

你可以这样做:

[]

你可能会发现attr1: []里面有[:attr3, {:attr1=>[], :attr2=>[]}] 很奇怪,但它在Ruby中是完全有效的语法。它将被解释为:

int num = random.nextInt(90) + 10;