2017-02-17 14 views
8

fields_for`: nedeniyle önyüzü tasarımınaİndeksleme `modeli <code>Album</code> Has_many <code>Song</code> ve bu şekilde lokalize alanları ile ikinci Verilen

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

, ben tek bir yerde bir tane f.simple_fields_for :songs yapamaz tüm şarkı niteliklerini için değil, onu bölmek gerekir:

= 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 } 
[...] 

çıkan alanlar [1] vb gerektiği gibi, ancak, endeks her indv üzerinde 0 ile yeniden başlamazsa, [0] ile endekslenir idivual simple_fields_for, ama sadece saymaya devam ediyor.

Kaynağı kontrol ettim ve Rails 'fields_for'da bir index seçeneği buldum, ancak bu yalnızca ek bir dizin dizisi ekler.

simple_fields_for (veya fields_for) aynı koleksiyon için birden çok kez çağrıldığında, dizinin otomatik artışını "sıfırlamak" için bir yol var mı?

cevap

6

Otomatik tekrarlamayı sıfırlamak yerine, bir döngüye fields_for kodunu koyarak ve child_index: your_index kodunu geçirerek dizini kendiniz ayarlayabilirsiniz.

+0

Evet, aynı çözümü buraya göndermek için geldim. child_index' tamamen belgelenmemiş gibi gözüküyor, en azından herhangi bir yerde belirtilmiyor [burada] (http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-fields_for). – Thilo

-1

Bir önerim, projeniz için globalize kullanmayı deneyin, bununla birlikte Song model yerelleştirilmiş verilerinizi yönetin. Lütfen bu screencast'u görüntüleyin.

Umarım yardımcı olur.

İlgili konular