【问题标题】:How to use integer radio buttons如何使用整数单选按钮
【发布时间】:2016-04-04 14:06:26
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby button integer radio


    【解决方案1】:

    你可以试试

       <%= 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 %>
    

    【讨论】:

      【解决方案2】:

      类似:

      <% (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 %>
      

      【讨论】:

        【解决方案3】:

        我的方法是在你的模型中使用枚举。例如,如果角色是投资者,角色字段将保存为数字 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' %>
        

        【讨论】:

          猜你喜欢
          • 2016-03-11
          • 2015-08-18
          • 1970-01-01
          • 2017-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-04
          • 1970-01-01
          相关资源
          最近更新 更多