Rails 4.Raylar 4 - enum nasıl kullanılır?
bir uygulama yapmaya çalışıyorum ben bu soru haberi ve bir tavsiyem var: Ben bu tavsiyeyi uygulamak anlamaya çalışıyorum Rails 4 -Simple Form how to save key and display value
. Şu anda
, ben bir tercihi modeli vardır: benim tercih formunda
enum self_governance: {
tier_1: 1,
tier_2: 2,
tier_3: 3,
tier_4: 4,
tier_5: 5
}
enum autonomy: {
tier_11: 1,
tier_21: 2,
tier_31: 3,
tier_41: 4,
tier_51: 5
}
, ben:
<%= f.input :self_governance, as: :select, label: "Select your governance approach", collection: Preference.self_governance.to_a.map { |p| [p.humanize, p] } %>
Ben tercihleri var görünümü gösterir:
<%= @organisation.preference.self_governance.try(:humanize) %>
Tüm bunları kaydedip denediğimde, şu hatayı alıyorum:
NoMethodError at /preferences/1/edit
undefined method `self_governance' for #<Class:0x007fde5b9fb500>
Did you mean? self_governances
Bu işin nasıl yapıldığını herkes görebilir mi?
Tercih modelindeki numaraya def/end etiketleri eklemem gerekir mi?
Teşekkürler! Bu çalıştı, ama şimdi bu hatayı alıyorum: ["tier_1" için tanımlanmamış yöntem "humanize", 1]: Array. Seçme satırından 'humanise' sildiğimde, hem anahtarı hem de değeri gösteren bir form alırım. Sadece değeri göstermek ama anahtarı saklamak istiyorum. 'Enum' kullanmaya çalışmak için yanlış bir şey mi? – Mel
Bir hash kullanmayla ilgili bir nedeniniz yoksa, bir diziye geçebilirsiniz, çoğu zaman enum'lar basittir ve sadece bir dizidir. Basit bir anahtar kullandığınız için (sayı 3 gibi) o zaman dizi indeksini ihtiyacınız olduğunda kullanabilirsiniz (örneğin, db'de saklanacak olan şey) – trh
Bunu nasıl yaparım? sayıyı saklamak için metni ve db görüntülemek için görünümü almaya çalışıyor – Mel