2015-03-02 33 views
0

我有一個大的多步表單,它使用Wicked逐步構建單個對象。當我測試表單時,我注意到當我按下表單上的後退按鈕(我提供的用於返回上一步的按鈕)時,單選按鈕和選擇字段中的值被設置回默認選項。文本字段顯示用戶輸入的文本。如果用戶在字段中輸入數據,我想將字段值顯示給用戶。如果欄位不爲零,則顯示欄位值

我已經想出瞭如何在我的視圖中使用long if語句來做到這一點,但想簡化它。

<% if @business.business_entity_type.nil? %> 
    <%= f.select :business_entity_type, options_for_select([["Structure", "0"], ["Sole Proprietorship", "Sole Proprietorship"], ["Partnership", "Partnership"], ["Corporation", "Corporation"]], selected: "0", disabled: "0") %> 
<% else %> 
    <%= f.select :business_entity_type, options_for_select([["Structure", "0"], ["Sole Proprietorship", "Sole Proprietorship"], ["Partnership", "Partnership"], ["Corporation", "Corporation"]], disabled: "0"), :value => @business.business_entity_type %> 
<% end %> 

當我把這個三元格式,我得到一個語法錯誤。

<%= f.select :business_entity_type, options_for_select([["Structure", "0"], ["Sole Proprietorship", "Sole Proprietorship"], ["Partnership", "Partnership"], ["Corporation", "Corporation"]], <%= @business.business_entity_type.nil? ? selected: "0" : :value => @business.business_entity_type %>, disabled: "0") %> 

當我在字段中嵌入一條if語句時,我也得到一個語法錯誤。

<%= f.select :business_entity_type, options_for_select([["Structure", "0"], ["Sole Proprietorship", "Sole Proprietorship"], ["Partnership", "Partnership"], ["Corporation", "Corporation"]], disabled: "0", selected: "0"), :value => @business.business_entity_type if @business.business_entity_type.present? %> 

我該如何用更乾淨的代碼實現相同的目標?

回答

0

我想通而不是使用:值我可以只使用選擇:

<%= f.select :business_entity_type, options_for_select([["Structure", "0"], ["Sole Proprietorship", "Sole Proprietorship"], ["Partnership", "Partnership"], ["Corporation", "Corporation"]], disabled: "0", selected: (@business.business_entity_type.nil? ? "0" : @business.business_entity_type)) %>