2011-05-03 140 views
4

我有一个桌子的房间,我有一个字段type(单人,双人)。我想为此字段使用单选按钮。所以,我这样使用它:单选按钮助手 - 默认值

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

这对编辑视图正常工作。问题是,对于新视图,我想将单选按钮默认为“Single”。对于这个代码,没有值检查新视图。

我现在调整与条件检查

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

室模型

def new_or_single? 
    type.nil? or type == "Single" 
end 

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

+2

您可以在数据库模式或在构造函数中“单”类型设置默认值。 – taro 2011-05-03 10:19:28

回答

11

设置默认:类型构造

def new 
    @room = Room.new(:type => "Single") 
end 
+2

哦..我没有想到这种可能性...很好.. – rubyprince 2011-05-03 11:51:44

+4

你也可能想考虑将你的字段名称从'type'改为'room_type'。列名'type'是Active Record用于继承的字段。它可能会在稍后导致您的问题:http://oldwiki.rubyonrails.org/rails/pages/MagicFieldNames – PhillipKregg 2011-11-12 02:15:37