两个布尔字段。单输入字段。 Ruby on Rails

时间:2011-02-15 06:25:14

标签: ruby-on-rails forms formtastic radio-group

我的模型中有两个布尔字段。存在依赖关系,一次只能有一个为真。在我的视图页面上,我想使用formtastic将它们显示为无线电输入。而不是单独的,而是作为一个单一的广播组。我知道有一种轨道方式,但不知怎的,我无法找到它。

请帮忙。在此先感谢。

1 个答案:

答案 0 :(得分:4)

您可以创建一个虚拟属性来获取和设置适当的值。例如,如果你有一个名为male的布尔值和一个名为female的布尔值,你可以使用性别属性控制这两个:

class User
  def gender= gender
    self.male = (gender == 'M')
    self.female = (gender == 'F')
  end

  def gender
    male ? 'M' : 'F'
  end
end

然后,您可以使用单选按钮组来选择性别:

radio_button_tag :gender, 'M'
radio_button_tag :gender, 'F'

当然,你总是可以选择将值组合成一个3状态属性,比如性别,可以是'M','F'或NULL。