Ruby on Rails-单选按钮-为什么此选项显示为true / false?

时间:2018-11-13 05:57:16

标签: ruby-on-rails

我试图理解为什么这会产生对或错。

相关代码:

          <div class="form-group">
                <%= label(:store_item, :can_be_shipped, 'Can be Shipped?')%>
                <div class="form-inline">
                <div class="radio inline">
                    <%= radio_button(:store_item, :can_be_shipped, true, :checked => true)%>
                    <%= label(:store_item, :can_be_shipped, 'Yes', :value => true)%>
                </div>
                <div class="radio inline">
                    <%= radio_button(:store_item, :can_be_shipped, false)%>
                    <%= label(:store_item, :can_be_shipped, 'No', :value => false)%>
                </div>
              </div>
          </div

因此,当我加载表格并选择“是”时,说该商品可以运送到国外,当我在商店页面上单击商品本身时,该商品已经寄出了吗?确实如此。我知道如何更改它,因此当我选择“是”时,在home.html页上使用if else语句查看该项目时,它会显示为“是”。

我想知道为什么,当我将标签中的:value更改为Yes或No时,实际上并没有从true更改为Yes。有人可以解释为什么会这样吗?

Ship

1 个答案:

答案 0 :(得分:0)

标签仅用于查看目的,并且在与与其关联的字段相关的验证失败时标记错误消息。如果您需要将can_be_shipped更改为“是”或“否”,则还必须更改单选按钮。

<div class="form-group">
  <%= label(:store_item, :can_be_shipped, 'Can be Shipped?')%>
  <div class="form-inline">
    <div class="radio inline">
      <%= radio_button(:store_item, :can_be_shipped,'Yes', :checked => true)%>
      <%= label(:store_item, :can_be_shipped, 'Yes', :value => 'Yes')%>
    </div>
    <div class="radio inline">
      <%= radio_button(:store_item, :can_be_shipped, 'No')%>
      <%= label(:store_item, :can_be_shipped, 'No', :value => 'No')%>
    </div>
  </div>
</div>