【问题标题】:Two Boolean fields. Single input field. Ruby on Rails两个布尔字段。单个输入字段。 Ruby on Rails
【发布时间】:2011-02-15 06:25:13
【问题描述】:

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

请帮忙。提前致谢。

【问题讨论】:

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


    【解决方案1】:

    您可以创建一个虚拟属性来获取和设置适当的值。例如,如果您有一个名为男性的布尔值和一个名为女性的布尔值,您可以使用如下所示的性别属性来控制两者:

    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'
    

    当然,您始终可以选择将这些值组合成一个单一的三态属性,例如可以是“M”、“F”或 NULL 的性别。

    【讨论】: