ぴよログ

↓に移転したのでこっちは更新されません、多分。

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

移転しました →

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

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