想知道当一个变量可以等于4、6或8而无需重复以前的输入时,是否有一种更干净的方法来进行条件转换?
例如
<%= form_with(model: sale, local: true) do |f| %>
<% if @sale.cost == 4 %>
<%= f.text_field :sale_1 %>
<%= f.text_field :sale_2 %>
<%= f.text_field :sale_3 %>
<%= f.text_field :sale_4 %>
<% elsif @sale.cost == 6 %>
<%= f.text_field :sale_1 %>
<%= f.text_field :sale_2 %>
<%= f.text_field :sale_3 %>
<%= f.text_field :sale_4 %>
<%= f.text_field :sale_5 %>
<%= f.text_field :sale_6 %>
<% elsif @sale.cost == 8 %>
<%= f.text_field :sale_1 %>
<%= f.text_field :sale_2 %>
<%= f.text_field :sale_3 %>
<%= f.text_field :sale_4 %>
<%= f.text_field :sale_5 %>
<%= f.text_field :sale_6 %>
<%= f.text_field :sale_7 %>
<%= f.text_field :sale_8 %>
<% end %>
<% end %>
<%= f.text_field :sale_1 %>
,
<%= f.text_field :sale_2 %>
@sale.cost == 6
然后在前面的4之后添加两个必需的输入?例如:
<%= form_with(model: sale, local: true) do |f| %>
<% if @sale.cost == 4 %>
<%= f.text_field :sale_1 %>
<%= f.text_field :sale_2 %>
<%= f.text_field :sale_3 %>
<%= f.text_field :sale_4 %>
<% some statement @sale.cost == 6 %>
<%= f.text_field :sale_5 %>
<%= f.text_field :sale_6 %>
<% some statement @sale.cost == 8 %>
<%= f.text_field :sale_7 %>
<%= f.text_field :sale_8 %>
<% end %>