【Rails】form_forにbootstrapを適用し綺麗にしつつ、ラベルと入力欄を横並びにするには

  • URLをコピーしました!
Railsの調べ物をしていてうまく出来たのでメモとして残しています。 以下のようなnewとeditのフォーム部分でBootstrapを使って見た目を綺麗にしていきます。
  <%= form_for(@task) do |f| %>
    <%= f.label :age, '年齢' %>
    <%= f.select :age,["20代", "30代", "40代", "50代", "60代" ] %>
  <%= f.submit '登録' %>

  <% end %>
目次

formのselectにbootstrapを適用して綺麗にする

まずclassでcontrol-labelを適用するダケで綺麗になるけど、以下の文だと何故かselectの方がうまく適用されない。
<%= f.label :age, '年齢', class:'control-label' %>
<%= f.select :age, ["20代", "30代", "40代", "50代", "60代" ], class: 'form-control' %>
で、APIリファレンスを読んだりしてもわからなくて。WEB上をあちこち調べまくってselectメソッドの3個目の引数に{}を入れると何故かうまくいきました。
<%= f.label :age, '年齢', class:'control-label' %>
<%= f.select :age, ["20代", "30代", "40代", "50代", "60代" ], {}, class: 'form-control' %>
これはこういうものだと覚えておかないと。

form_for内ののラベルと入力欄を横並びにする

【Rails】form_forにbootstrapを適用し綺麗にしつつ、ラベルと入力欄を横並びにするにはの本文画像 1
(1) そのためにはform_forを、<div class=”form-horizontal” role=”form”>~</div>で囲ってあげる つまりこんな感じ。
<div class="form-horizontal" role="form">
 <%= form_for(@person) do |f| %>
  ~~
 <% end %>
</div>
(2) さらにラベルと入力欄を<div class=”form-group”>~</div>で囲う。これで1行になる。 そして横並びにするには、ラベルと入力欄にグリッドを適用するので、ラベルは<div class=”col-xs-2″></div>で囲ってあげて2マス分確保、入力欄は<div class=”col-xs-10″></div>で囲って10マス分確保してあげる。(横幅いっぱいになっちゃうけど)
  <div class="form-group">
      <div class="col-xs-2">
        <%= f.label :age, '年齢', class:'control-label' %>
      </div>
      <div class="col-xs-10">
        <%= f.select :age, ["20代", "30代", "40代", "50代", "60代" ], {}, class: 'form-control' %>
      </div>
  </div>
(3)1と2を合わせた完成形
<div class="form-horizontal" role="form">
  <%= form_for(@person) do |f| %>
    <div class="form-group">
     <div class="col-xs-2">
    	<%= f.label :age, '年齢', class:'control-label' %>
     </div>
     <div class="col-xs-10">
	<%= f.select :age,["20代", "30代", "40代", "50代", "60代" ], {},   class: 'form-control' %>
     </div>
    </div>
  <%= f.submit '登録' %>
  <% end %>
</div>
参考にさせていただいたサイト https://sites.google.com/site/rubyonrailsapps/view_tips/railsnoformwobootstrapde-shi-zhuangsurutoki Bootstrapとフォームタグの使い方いろいろ https://qiita.com/zaburo/items/8983993d173c51cb3827 https://qiita.com/uedatakeshi/items/ef8682956f956040bfce

プログラミング学習を体系的に進めたい人へ

独学で基礎を確認したあとに、質問できる環境や転職・副業向けの学習サポートも比べたい人は、プログラミングスクールの比較記事も参考にしてください。学習目的、料金、受講期間、サポート範囲を分けて見ると、自分に合う学び方を選びやすくなります。


目次