2010-03-06 18 views
8

Bir değerler kümesine sahip dinamik formum var. Gösterdiğim metin alanlarını içeren bir kısmi oluşturdum. Her birinin yanında, metnin başlığını içeren bir etiket görüntülemek istiyorum. Örneğin Ad ve Soyad daha önce bilinmeyecek. Bunu yapmayı nasıl yaparım? Özniteliklere doğrudan erişemiyorum gibi görünüyor. Ancak etiket alanını kullandığımda, etiketteki değişken adı gerçek değer olarak gösterilmez.Fields_for dinamik etiket

+0

Neyi başarmak istediğinizi daha iyi açıklamaya çalışır mısınız? Belki bir örnek verebilir misin? Sana yardım etmek için anlamaya çalıştım ama neye ihtiyacın olduğunu anlayamıyorum. – Petros

+0

Bir Dinamik Alanlar kümesiyle (Ad, Değer) bire çok ilişkisi olan bir nesnem var. Bir kullanıcı dinamik alanları güncellediğinde, alanların adını kodlanmış etiket yerine gerçek etiket olarak göstermek istiyorum. Ya da önceden belirlenmiş bir String değeri. Dinamik form, kısmi ve tüm verilerdedir. Parçacıklar: _form.erb <% f.fields_for: entity_values ​​do | builder | %> <% = "entity_value_fields" işlemek: Rf => oluşturucu%> <% end% _entity_value_fields.erb <% = f.label : ad%> {etiket bu değer dinamik adı olması gerekir} <% = f.text_field: value%> ... – sebajb

cevap

6

Peki! Bu, raylara ne kadar yeni olduğumun bir yansımasıydı. Bunu f.object.{attr_name} kullanarak yapabilir ve çalıştı.

+0

Bunu nasıl kullanıyorsunuz? örneğindeki nesne ne olurdu? –

5

f.object.{attr_name} benim için çalışmadı, ancak f.object[:attr_name] yaptı.

+1

'f.object.first_name' veya' attr_name = 'first_name'; f.object.send (attr_name) 'çalışır. f.object. {attr_name} 'geçersiz Ruby sözdizimi. – Kris

2

Ne hakkında: Rubyish yol olacağını

f.object.send(attr_name) 

.

+0

Bunu daha iyi açıklayabilir misiniz? –

+2

Tüm form yapımcıları, formun sarıldığı nesneyi döndüren 'object' adlı bir yönteme sahiptir, bu genellikle bir ActiveRecord modelini, kişiyi söyler. Daha sonra bu kişiye bir mesaj göndermek için 'gönder 'diyoruz, bu yüzden person.send (: name)', 'person.name' ile aynıdır. "Gönder" i kullanarak görebildiğiniz gibi, etiketimiz olarak göstermek istediğimiz özniteliği (ör. Soyad_adı) kodlamamız gerekmez. Yani yukarıdaki durumda 'attr_name' herhangi bir dize olabilir, son_adı, first_name, her neyse. – Kris

İlgili konular