#実装すること
- bootsrap.jsを使用して動的なタブを実装します。
公式でいう「Javascript Behavior」が該当します。
Bootstrap: https://getbootstrap.jp/docs/4.5/components/navs/#javascript-behavior
完成形
前提
- bootstrapをインストールしていること。
以下、私のgemのバージョンと記載方法です。
gem 'bootstrap', '~> 4.5'
gem 'jquery-rails'
*= require social-share-button
*= require_tree .
*= require_self
*/
@import "bootstrap";
//= require jquery3
//= require popper
//= require bootstrap-sprockets
参考までに: https://qiita.com/NaokiIshimura/items/c8db09daefff5c11dadf
手順
- bootstarp.jsのダウンロード
- assetsに格納
- viewへの記載
実装
###1.bootstarp.jsのダウンロード
まず、bootsrap公式を確認します。
| |
---|
1行目にある通り、使用するには「bootstrap.js」が必要だとわかります。
大抵の方が、bootstrapをインストールしているから使えるものだと思っていました。(私もそうでした。)
- どこにそのファイルがあるかというと、**
公式ページ
**にあります。
飛ぶとトップ画面にダウンロードとあるので、クリックしてください。
- 次にコンパイルされたCSS と JSの項目にダウンロードとあるので、そちらでファイルをダウンロードしてください。
###2.assetsに格納
ダウンロードしたファイルの中にCSSとJSフォルダがあるので、jsファイルから
bootstrap.js
をrailのassets/javascripts
内に格納してください。
###3. viewへの記載
最後に、使用したいviewファイルにbootsrapドキュメントからコピーして貼り付けます。
コピー元: https://getbootstrap.jp/docs/5.0/components/navs-tabs/#javascript-behavior
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">...</div>
</div>
以下、私の記述です。参考までに。
<ul class="text-center nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item w-50 bg-light">
<a class="nav-link active link-text" id="follower-tab" data-toggle="tab" href="#follower" role="tab" aria-controls="follower" aria-selected="true">フォロー</a>
</li>
<li class="nav-item w-50 bg-light">
<a class="nav-link link-text" id="followed-tab" data-toggle="tab" href="#followed" role="tab" aria-controls="followed" aria-selected="false">フォロワー</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="follower" role="tabpanel" aria-labelledby="follower-tab">
<div class="ml-1 mt-3 mb-2">全フォロー数: <%= @member.follower.count %>人</div>
<% @member.following_member.each do |member| %>
----省略----
<% end %>
</div>
<div class="mb-5 tab-pane fade" id="followed" role="tabpanel" aria-labelledby="followed-tab">
<div class="ml-1 mt-5 mb-2">全フォロワー数: <%= @member.followed.count %>人</div>
<% @member.follower_member.each do |member| %>
----省略----
<% end %>
</div>
</div>
以上です。