所以我正在尝试设置脚手架以使用单选按钮作为格式按钮。它绝对适用于添加新的和编辑。问题是当我去编辑一个条目时,默认情况下没有选择正确的单选按钮。
<% 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 :(得分:1)
当您为呈现表单的任何模型创建新记录时,并且不为其赋予format
的值,它的价值是什么?如果它是零,则那是你的问题,因为这些复选框都不是“空白”。您需要设置数据库,以便为format
提供与您的某个单选按钮值匹配的默认值。