如何使用整数单选按钮

How to use integer radio buttons

将有效值数量有限的整数属性表示为单选按钮的最简单方法是什么?

如何使用表单助手来实现这一点?我只看到使用字符串值的示例。

类似于:

<% (1..10).each do |value| %>
  <%= f.radio_button_tag(:method_name, value) %>
<% end %>

其中 (1..10) 可能作为常量属于模型。还有什么使验证更容易:

# in the model
FOOS = (1..10)
validates :foo, inclusion: { in: FOOS }

# in the view
<% Model::FOOS.each do |values| %>
  <%= f.radio_button_tag(:foo, value) %>
<% end %>

你可以试试

   <%= form_for :model do |f| %>
    <% 1.upto(10) do |i| %>
      <%= f.radio_button :integer, i %> #integer is the model field
    <% end %> 
   <% end %>

<%= form_tag do %>
<% 1.upto(10) do |i| %>
  <%= radio_button_tag :name, i %>
<% end %>
<% end %>

我的方法是在模型中使用枚举。例如,在我的示例中,如果角色是投资者,角色字段将保存为数字 0,如果角色是交易员,则角色字段将保存为数字 1。

您需要像这样在您的模型 .rb 文件中声明您的枚举:

enum role: [:investor,:trader]

然后在查看文件中:

 <%= f.radio_button :role, :investor , class: 'form-control underlined' %>
 <%= label :role_investor, 'I wanna be an investor' %>
 <%= f.radio_button :role, :trader  , class: 'form-control underlined' %>
 <%= label :role_trader, 'I wanna be a trader' %>