2010-04-20 60 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