使用多个“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
传递给它来自行设置索引,而不是尝试重置自动增量。
给定模型 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
传递给它来自行设置索引,而不是尝试重置自动增量。