質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

1回答

1133閲覧

アコーディオンを複数設置して個々に開閉したい

ikt_erk122

総合スコア40

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2019/05/27 08:11

編集2019/05/27 09:17

【やりたいこと】
各リンク毎にアコーディオンを使って開閉させる

【困っていること】
一番上のリンクしかアコーディオンが開閉しない
イメージ説明

【参考記事】
https://bootstrap.hana87.club/collapse.html

【質問】
アコーディオンの書き方が間違っているのでしょうか?アドバイスいただけると幸いです。

・index.html.erb

<% provide(:title, @title) %> <h1><%= @title %></h1> <div class="row"> <div class="search_form"> <%= render 'users/search_form' %> </div> </div> <%= will_paginate %> <% unless @users.empty? %> <ul class="users"> <%= render @users %> </ul> <% else %> <p class="search"> ユーザーが見つかりませんでした。<br> 探しているユーザー名を確認してください。 </p> <% end %> <%= will_paginate %>

・_user.html.erb

<li> <%= user.name %> <div class="panel panel-default collaps"> <a href="#demo" data-toggle="collapse" class="btn btn-primary">クリック</a> </div> <div id="demo" class="collapse"> リンク </div> </li>

・seeds.rb

User.create!(name: "管理者", email: "email@sample.com", password: "password", password_confirmation: "password", admin: true) 59.times do |n| name = Faker::Name.name email = "email#{n+1}@sample.com" password = "password" User.create!(name: name, email: email, password: password, password_confirmation: password) end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

同一idは画面内に存在できませんので、今回のケースのように最初に記述されているもののみ「有効」となります。
idを別名つけてください。
動的になるのであれば連番でも良いです。

つまり出力的には現在の下記を

html

1<li> 2 ユーザー1 3 <div class="panel panel-default collaps"> 4 <a href="#demo" data-toggle="collapse" class="btn btn-primary">クリック</a> 5 </div> 6 <div id="demo" class="collapse"> 7 リンク 8 </div> 9</li> 10 11<li> 12 ユーザー2 13 <div class="panel panel-default collaps"> 14 <a href="#demo" data-toggle="collapse" class="btn btn-primary">クリック</a> 15 </div> 16 <div id="demo" class="collapse"> 17 リンク 18 </div> 19</li>

下記のようになるように

html

1<li> 2 ユーザー1 3 <div class="panel panel-default collaps"> 4 <a href="#link1" data-toggle="collapse" class="btn btn-primary">クリック</a> 5 </div> 6 <div id="link1" class="collapse"> 7 リンク 8 </div> 9</li> 10 11<li> 12 ユーザー2 13 <div class="panel panel-default collaps"> 14 <a href="#link2" data-toggle="collapse" class="btn btn-primary">クリック</a> 15 </div> 16 <div id="link2" class="collapse"> 17 リンク 18 </div> 19</li>

※demoという名称は変更したほうが良いと思いますので変えています

投稿2019/05/27 08:21

編集2019/05/27 08:24
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikt_erk122

2019/05/27 09:21

回答ありがとうございます。 demoをlinkに変えたのですが、アコーディオンが表示されなくなりました。 ちなみに追記したのですがユーザーはgem fakerを使用してサンプルユーザーを作っています。
m.ts10806

2019/05/27 09:22

Ruby詳しくないのでgemのことはよくわからないですがそのユーザーは関係ないです。 あくまで「同一IDを入れない」ことが大事なので。 hrefの#ID名とアコーディオンのid="ID名"はリンクしているので同じ名称をつけなければなりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問