2010-04-20 94 views
1

所以我試圖設置腳手架使用單選按鈕作爲格式按鈕。它絕對有助於添加新的和編輯。問題是當我去編輯一個條目時,默認情況下沒有選擇正確的單選按鈕。在編輯時設置默認單選按鈕

<% form_for(@cinema) do |f| %> 
<%= f.error_messages %> 

<p> 
    <%= f.label :title %><br /> 
    <%= f.text_field :title %> 
</p> 
<p> 
    <%= f.label :director %><br /> 
    <%= f.text_field :director %> 
</p> 
<p> 
    <%= f.label :release_date %><br /> 
    <%= f.date_select :release_date, :start_year => 1900, :end_year => 2010 %> 
</p> 
<p> 
    <%= f.label :running_time %><br /> 
    <%= f.text_field :running_time %> 
</p> 
<p>Blockquote 
    <%= f.label :format %><br /> 
    <%= f.radio_button :format, "black & white" %> 
    <%= label :format_bw, "Black & White" %> 
    <%= f.radio_button :format, "color" %> 
    <%= label :format_color, "Color" %> 
</p> 
<p> 
    <%= f.submit 'Create' %> 
</p> 

控制器

def edit 
    @cinema = Cinema.find(params[:id]) 
    end 

型號

class Cinema < ActiveRecord::Base 
validates_presence_of :title, :on => :create 
validates_presence_of :title, :on => :update 
# 
validates_presence_of :director, :on => :create 
validates_presence_of :director, :on => :update 
# 
validates_presence_of :release_date, :on => :create 
validates_presence_of :release_date, :on => :update 
# 
validates_presence_of :format, :on => :create 
validates_presence_of :format, :on => :update 
# 
validates_presence_of :running_time, :on => :create 
validates_presence_of :running_time, :on => :update 
validates_numericality_of :running_time, :on => :create, :on => :update, :less_than_or_equal_to => 300, :greater_than => 0 
end 
+0

您可以在這裏粘貼整個form_for部分以及您的數據庫表中究竟保存了哪些內容? (和粘貼時(即101010按鈕) – retro 2010-04-20 18:41:59

+0

添加了所有我對MVC的代碼,所有的字段都表示使用的代碼格式。 – DTown 2010-04-21 00:45:34

回答

1

當您創建的任何模型正在渲染的形式的新紀錄,並沒有給它一個值對於format,它的價值是什麼?如果它是零,那麼這就是你的問題,因爲這些複選框都沒有「空白」。您需要設置您的數據庫以將默認值設置爲format,以匹配您的單選按鈕值之一。

+0

有驗證該部隊那裏是一個單選按鈕選擇。所以格式永遠不要空白。 – DTown 2010-04-21 00:46:32