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
モデルのほうでちゃんとバリデーションしといたほうがいいですね。