2011-04-09 28 views
0

我目前正在構建我的第一個Rails 3應用程序,但無法完全弄清楚如何獲得一個功能。在Rails 3中使用多個下拉列表而不是文本字段

我有一個溫度場,但不是使用<%= f.text_field :temp %>,我想有兩個下拉菜單。第一個下拉菜單允許選擇97-99,而第二個下拉菜單則允許選擇0-9。在用戶選擇並保存之後,結果應該連接成例如98.2

在Rails 3中實現這一點的最佳方法是什麼?謝謝!

回答

0

我建議創建兩個虛擬屬性,每個部分的溫度(97-99和0-9)。然後在模型中定義一個before_validation方法,該方法將這兩個值(未持久保存到數據庫)並相應地設置temp屬性(即持久化到數據庫)。通過這種方式,您可以像平常一樣驗證臨時值,並像查詢數據庫中的任何其他常規值一樣查詢它。它還可以讓你的視圖代碼在眼睛上更容易。還有其他方法可以做到這一點。

瑞安貝茨對虛擬屬性有很好的截屏。 http://railscasts.com/episodes/167-more-on-virtual-attributes

+0

這看起來很完美。謝謝。 – 2011-04-11 13:17:10

+0

我有一個後續問題[這裏](http://stackoverflow.com/questions/5629309/passing-virtual-attribute-values-through-to-form-elements-in-rails-3)如果你感興趣。 – 2011-04-12 01:10:45

0

您可以在任何模型中使用兩個屬性。一個用於您想要使用的每個字段。然後,當你點擊保存時,你在模型中有代碼並使用這些屬性來形成溫度屬性。

相關問題