PIYO - Tech & Life -

Rails form_forでの数値用のコントロールとvalidates numericality

Ruby Rails

form_forで何が使えるのかって全然把握していなかったのですが、number_fieldってのがあるんですね。

Hamlで書くとこういう感じに。

= form_for @my_model, method: :put, role:"form", remote:true, class:"form-horizontal" do |f|
  .form-group
    = f.label :my_value, "値", class:"control-label col-sm-2"
    .col-sm-2
      = f.number_field :my_value, class:"form-control", required:true, min:"0" 
    .col-sm-2
      = f.submit "設定", class:"form-control btn btn-default"

ブラウザによっては数値を操作するボタンを置いてくれるのでちょっとだけ便利です。

ちゃんとバリデーションする

class MyModel
  validates :my_value, numericality:{only_integer:true, greater_than_or_equal_to:0}
end

モデルのほうでちゃんとバリデーションしといたほうがいいですね。