2011-05-03 137 views
4

我有一個桌子的房間,我有一個字段type(單人,雙人)。我想爲此字段使用單選按鈕。所以,我這樣使用它:單選按鈕助手 - 默認值

<% form_for(@room) do |f| %> 
    <%= f.radio_button :type, "Single" %> 
    <%= f.radio_button :type, "Double" %> 
<% end %> 

這對編輯視圖正常工作。問題是,對於新視圖,我想將單選按鈕默認爲「Single」。對於這個代碼,沒有值檢查新視圖。

我現在調整與條件檢查

<% form_for(@room) do |f| %> 
    <%= f.radio_button :type, "Single", :checked => @room.new_or_single? %> 
    <%= f.radio_button :type, "Double" %> 
<% end %> 

室模型

def new_or_single? 
    type.nil? or type == "Single" 
end 

有沒有更好的方式來實現這一目標?

+2

您可以在數據庫模式或在構造函數中「單」類型設置默認值。 – taro 2011-05-03 10:19:28

回答

11

設置默認:類型構造

def new 
    @room = Room.new(:type => "Single") 
end 
+2

哦..我沒有想到這種可能性...很好.. – rubyprince 2011-05-03 11:51:44

+4

你也可能想考慮將你的字段名稱從'type'改爲'room_type'。列名'type'是Active Record用於繼承的字段。它可能會在稍後導致您的問題:http://oldwiki.rubyonrails.org/rails/pages/MagicFieldNames – PhillipKregg 2011-11-12 02:15:37