使用多个“fields_for”对嵌套表单进行索引

Indexing on nested form with multiple `fields_for`

给定模型 Album has_many Song 并且后者具有本地化字段,例如:

Song#name_en
Song#description_en
Song#name_fr
Song#description_fr
[...]

由于前端设计,我无法在一个地方对所有歌曲属性做一个f.simple_fields_for :songs,需要拆分:

= f.simple_fields_for :songs do
  = render partial: 'song_en_fields', locals: { f: f, locale: :en }
[...]
= f.simple_fields_for :songs do
  = render partial: 'song_fields', locals: { f: f, locale: :fr }
[...]

结果字段按应有的 [0][1] 等索引,但是,索引不会在每个 simple_fields_for 上以 0 重新开始,而是继续计数向上。

我检查了源代码并在 Rails' fields_for 中找到了一个 index 选项,但这只是添加了一个额外的索引数组。

simple_fields_for(或fields_for)被同一个集合多次调用时,有没有办法"reset"索引自动递增?

您可以通过将 fields_for 放入循环并将 child_index: your_index 传递给它来自行设置索引,而不是尝试重置自动增量。