1

我试图允许参数通过我的控制器来获取datatype 的属性,jsonb哈希看起来像这样:

data: 
  { "en" =>
    {
      "activities_text" => "Activities",
      "playlists_text" => "Playlists",
      "additional_playlists_text" => "Additional Playlists"
    },
    "es" =>
    {
      "activities_text" => "Actividades",
      "playlists_text" => "Lista de Actividades",
      "additional_playlists_text" => "Listas de Actividades Adicionales"
    }
  }

我让我的表格开始工作,我可以成功保存数据,但仅限于其中一种语言键。问题正在发生,因为在我的安全参数数组中,我有以下内容:

text_customization_attributes: [:id, data: [es: [:activities_text, :playlists_text, :additional_playlists_text]]]

我需要能够通过这两种语言en:以及将来可能添加的es:任何其他语言。keys我天真地认为可能同时添加上面的行以及 this:text_customization_attributes: [:id, data: [en: [:activities_text, :playlists_text, :additional_playlists_text]]] 会起作用,但是一个会覆盖另一个,并且只有最后一个允许的参数获胜。

有什么想法可以让我同时通过es:en:吗?

先谢谢了!

附录: 我能够通过使用这个来保存整个哈希

text_customization_attributes: [:id, data: [en: [:activities_text, :playlists_text, :additional_playlists_text],
es: [:activities_text, :playlists_text, :additional_playlists_text]]]

但这似乎很hackish..必须有更好的方法。

4

1 回答 1

0

en正如你所说,除了or之外,可能还有一些键es,我们必须以某种方式告诉哪些参数是允许的。在您的情况下,您可以映射到一个空哈希,例如,

text_customization_attributes: [:id, data: {}]

但是,它有点脆弱,因为它打开了任意输入的大门。

参考 -> 边缘指南

于 2017-08-18T06:02:54.377 回答