单选按钮帮助程序 - 默认值

rub*_*nce 4 ruby-on-rails

我有一个餐厅,我有一个字段type(单,双).我想在这个领域使用一个单选按钮.所以,我这样使用它:

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

这适用于编辑视图.问题是,对于新视图,我想将单选按钮默认为"单个".对于此代码,不会检查新视图的值.

我正在调整条件检查

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

房间模型

def new_or_single?
  type.nil? or type == "Single"
end
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标?

Sec*_*tor 11

设置默认值:输入构造函数

def new
  @room = Room.new(:type => "Single")
end
Run Code Online (Sandbox Code Playgroud)

  • 您还可以考虑将字段名称从"type"更改为"room_type".列名称"type"是Active Record用于继承的字段.它可能会在以后引起您的问题:http://oldwiki.rubyonrails.org/rails/pages/MagicFieldNames (4认同)