2012-02-02 19 views
50

Simple_form gem kullanıyorum, bir ülke koleksiyonum var, ülkeyi seçtiğimde iyi çalışıyor ve güncellenmiş kayıt ülke kimliğini saklayacaktır, ancak kaydı düzenlemeye çalıştığımda, seçilen ülke seçili değildir. düzenleme formunda varsayılan.raylar, simple_form, sayfa yüklendiğinde koleksiyonun seçili endeksini nasıl belirlenir?

= f.input :country_id, :collection => all_countries 

db seçilen ülkeyi görüntülemek simple_form olmamalı: Burada

düzenlemek formuyla kodudur?

+0

> Simple_form seçili ülkeyi db'den görüntülememeli midir? Çünkü basit_form, rayların form_for yardımcıları için sadece bir sarıcıdır. Kodda seçili seçenek bulunup bulunmadığını görmek için oluşturduğunuz html’yi kontrol edin. – Ineu

+0

Bu sorunun "varsayılan" terimini kullanmadığı durumlarda yardımcı olacağını düşünüyorum. Gördüğüm zaman, daha önce hiçbir şeyi seçmediğinizde, bir şey sakladığınızda ve sayfaya geri döndüğünüzde, seçilen öğenin ne olacağı hakkında konuştuğunuzu düşünüyorum. – cesoid

+0

Evet, düzeltdim ama soru biraz uzadı :) – simo

cevap

117

Seçilen => seçeneğini kullanmayı denediniz mi?

:selected => selected_country_id 

Yani,

= f.input :country_id, :collection => all_countries, :selected => selected_country_id 

Bu acağından !!!

Şerefe!

+0

yani '= f. input: country_id,: collection => all_countries,: selected => selected_country_id' –

+2

Bu aşağıdaki durumlarda işe yaramaz: include_blank true olarak ayarlanmış. Bu bir hata olabilir mi? – Remo

+0

@Remo kodunuzu düzgün bir şekilde test eder. –

7

Bu sorunun yanıtlandığını biliyorum, ancak buraya bir koleksiyon kutusu koleksiyonu için benzer bir çözüm aramaya geldim. Gelecek kuşak için, bunu nasıl yapıyorsunuz:

<%= f.input :country_ids, :as => :check_boxes, :collection => [['USA', :USA], ['Japan', :JPN]], :checked => [:JPN], :include_hidden => false %> 

Bunu birilerine yardımcı olun.

İlgili konular