SORU
19 ŞUBAT 2011, CUMARTESİ


ruby on rails f.özel öznitelikleri ile seçenek

Şeklinde bir deyim, bu gibi:

= f.select :country_id, @countries.map{ |c| [c.name, c.id] }

Bu kod sonucu:

...
<option value="1">Andorra</option>
<option value="2">Argentina</option>
...

Ama bu gibi seçeneklerim için özel bir HTML özniteliği eklemek istiyorum:

...
<option value="1" currecy_code="XXX">Andorra</option>
<option value="2" currecy_code="YYY">Argentina</option>
...

CEVAP
16 HAZİRAN 2011, PERŞEMBE


Raylar özel öznitelikleri seçenek mevcut options_for_select yardımcı kullanarak ekleyebilirsiniz. Neredeyse sorunuza kodu haklıydı. Html5 veri özellikleri kullanarak:

<%= f.select :country_id, options_for_select(@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] }) %>

İlk seçim eklemek için:

<%= f.select :country_id, options_for_select(@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] }, selected_key = f.object.country_id) %>

Eğer gruplandırılmış seçenekler ihtiyacın olursa, grouped_options_for_select Yardımcısı, bu ise @nesneleri kıta kıta, her ülke bir yönteme sahip olan bir dizi (varsa) gibi kullanabilirsiniz:

<%= f.select :country_id, grouped_options_for_select(@continents.map{ |group| [group.name, group.countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] } ] }, selected_key = f.object.country_id) %>

Kredi raylar kaynak okuyarak docs, ancak bu bulgu ile ilgili ilan eden paul @ pogodan gitmeli. https://web.archive.org/web/20130128223827/http://www.pogodan.com/blog/2011/02/24/custom-html-attributes-in-options-for-select

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006