在编辑时设置默认单选按钮

时间:2010-04-20 16:15:27

标签: ruby-on-rails

所以我正在尝试设置脚手架以使用单选按钮作为格式按钮。它绝对适用于添加新的和编辑。问题是当我去编辑一个条目时,默认情况下没有选择正确的单选按钮。

<% 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

1 个答案:

答案 0 :(得分:1)

当您为呈现表单的任何模型创建新记录时,并且不为其赋予format的值,它的价值是什么?如果它是零,则那是你的问题,因为这些复选框都不是“空白”。您需要设置数据库,以便为format提供与您的某个单选按钮值匹配的默认值。