2013-02-10 56 views
0

我有另一個form_for選擇問題。 我爲我的客戶模型使用了部分新的和編輯表單。 :customer_type可以是三個值之一:承包商,業務,房主。所以,我把這些值放在我的模型中的一個數組中。Rails Form_For:如何在更新表單中顯示數組中的選定值

def self.customer_types 
    customer_types = ['Contractor', 'Homeowner', 'Business'] 
end 

在我的形式,我這樣做:

<%= f.select(:customer_type, options_for_select(Customer.customer_types)) %> 

也能正常工作在新的形式,但在編輯表單,我如何才能選定值:被選中的customer_type?我嘗試了幾件事,但沒有爲我工作。

感謝您的任何提示。 -jc

回答

3

options_for_select帶有一個可選的第二個參數,這是所選擇的選項:)

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

你需要的第二件事是實際值,可以通過f.object訪問。因此就沿着這些線路

<%= f.select(:customer_type, options_for_select(Customer.customer_types, f.object.customer_type)) %> 
+0

謝謝,但在「f.object.customer_type」,並稱網我:未定義的方法'CUSTOMER_TYPE」的零:NilClass。我也試過'f.customer_type'(當然沒有單引號) – 2013-02-10 21:00:23

+0

這個工作原理:<%= f.select(:customer_type,options_for_select(Customer.customer_types,@ customer.customer_type))%>我猜這就是'object'在f.object.customer_type中?謝謝,-jc – 2013-02-10 21:05:37

+0

是的,你是對的。我假設你有一個form_for @customer,但我想你有form_for:customer。我建議使用前者,因爲其他表單域將以這種方式自動填充。 – 2013-02-10 21:18:08

相關問題