使用多个`fields_for`

时间:2017-02-17 09:03:11

标签: ruby-on-rails ruby simple-form 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'index中找到了fields_for选项,但这只是添加了一个额外的索引数组。

对同一个集合多次调用simple_fields_for(或fields_for)时,有没有办法“重置”索引的自动增量?

1 个答案:

答案 0 :(得分:7)

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