我試圖讓on Rails的4Rails 4 - 如何使用枚舉?
的應用程序,我張貼了這個問題,並得到了一些建議:Rails 4 -Simple Form how to save key and display value
我想弄清楚如何實施這個建議。
目前,我有一個嗜好模型:
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
}
在我的偏好形式,我有:
<%= f.input :self_governance, as: :select, label: "Select your governance approach", collection: Preference.self_governance.to_a.map { |p| [p.humanize, p] } %>
我有一個偏好表明觀點:
<%= @organisation.preference.self_governance.try(:humanize) %>
當我保存所有這一切,並嘗試它,我得到這個錯誤:
NoMethodError at /preferences/1/edit
undefined method `self_governance' for #<Class:0x007fde5b9fb500>
Did you mean? self_governances
任何人都可以看到如何使這項工作?
我是否需要在偏好模型中的枚舉中添加def/end標籤?我沒有任何使用代碼枚舉的經驗
謝謝!這工作,但現在我得到這個錯誤:未定義的方法'人性化'爲[「tier_1」,1]:數組。當我從選擇行中刪除'humanise'時,我會得到一個顯示鍵和值的表單。我只想顯示價值,但存儲密鑰。 '枚舉'是錯誤的嘗試使用? – Mel
如果你沒有使用散列的理由,你可以切換到一個數組,很多時候枚舉的數組很簡單,只是一個數組。由於您使用的是簡單的鍵(如數字3),因此您可以在需要時使用數組索引(例如,這將存儲在數據庫中) – trh
我該怎麼做?我只是試圖讓視圖顯示文本和數據庫來存儲號碼 – Mel