【问题标题】:Rails radio buttons - one choice for multiple columns in on modelRails 单选按钮 - 模型中多列的一种选择
【发布时间】:2011-12-06 18:35:27
【问题描述】:

我希望用户为一个模型从三个选项中选择一个。

即我有一个模型视频,可以被评为正面/负面/未知

目前我有三列布尔值(pos/neg/unknown)。

这是处理这种情况的最佳方法吗?

这个表单应该是什么样的?

目前我有类似的东西

<%= radio_button_tag :positive, @word.positive, false %> 
<%= label_tag :positive, 'Positive' %>
<%= radio_button_tag :negative, @word.negative, false %> 
<%= label_tag :negative, 'Positive' %>
<%= radio_button_tag :unknown, @word.unknown, false %> 
<%= label_tag :unknown, 'Positive' %>

但显然它允许多项选择,而我试图将其限制为一个..

怎么办?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 forms


    【解决方案1】:

    如果要使用字符串列,比如说rating

    然后在你的表单中:

    # ...
    <%= f.radio_button :rating, 'unknown', checked: true %>
    <%= f.radio_button :rating, 'positive' %>
    <%= f.radio_button :rating, 'negative' %>
    # ...
    

    它只允许一个选择

    编辑完全相同,但使用radio_button_tag:

    <%= radio_button_tag 'rating', 'unknown', true %>
    <%= radio_button_tag 'rating', 'positive' %>
    <%= radio_button_tag 'rating', 'negative' %>
    

    【讨论】:

    • 我正是这样做的(更改了字符串的列)并将该表单放入并收到此错误:未定义的方法`positive?对于 #<0x007fb9962fa830>
    【解决方案2】:

    我认为你需要这样的东西:

    <%= radio_button_tag :rating, 'positive', @word.rating == :positive %> 
    <%= label_tag :positive, 'Positive' %>
    <%= radio_button_tag :rating, 'negative', @word.rating == :negative %> 
    <%= label_tag :negative, 'Positive' %>
    <%= radio_button_tag :rating, 'unknown', @word.rating == :unknown %> 
    <%= label_tag :unknown, 'Positive' %>
    

    这里所有的单选按钮都将具有相同的name 属性(即'rating'),但将具有不同的value 属性(分别为'positive', 'negative' and 'unknown')。在最后一个参数中,您传递 truefalse 以将其中一个标记为选中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 2016-05-03
      • 1970-01-01
      • 2016-06-17
      • 2011-03-12
      相关资源
      最近更新 更多