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

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

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

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

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1445閲覧

DataTablesを機能を使いたい

tky31

総合スコア17

Ruby on Rails 5

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

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/08/02 22:56

編集2018/08/03 23:01

Ruby on Railsを使ってJqueryプラグイン機能のDataTablesを使って下記URLの様にボタンを使用して、表示したい列を制御したいのですが、Railsを使っての動作が上手くいきません。
単純にHTMLで書くと、思った通りの動作になるのですが、、Railsの場合なにか必要になるのでしょうか?

リンク内容

イメージ説明

htmlで、サンプルのコード+Jquery、DataTablesをダウンロードで使うと上手く上記ボタンが表示され実行できます。

htmlで書いたコード

<!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>datatables</title> <!--ダウンロードしたファイルを参照--> <link rel="stylesheet" href="/datatables.min.css"> <script type="text/javascript" src="jquery-3.3.1.min.js"></script> <script src="datatables.min.js"></script> <script> $(document).ready(function() { $('#example').DataTable( { dom: 'Bfrtip', buttons: [ { extend: 'colvisGroup', text: 'Office info', show: [ 1, 2 ], hide: [ 3, 4, 5 ] }, { extend: 'colvisGroup', text: 'HR info', show: [ 3, 4, 5 ], hide: [ 1, 2 ] }, { extend: 'colvisGroup', text: 'Show all', show: ':hidden' } ] } ); } ); </script> </head> <body> <table id="example" class="display" style="width:100%"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> <tr> <td>Garrett Winters</td> <td>Accountant</td> <td>Tokyo</td> <td>63</td> <td>2011/07/25</td> <td>$170,750</td> </tr> <tr> <td>Ashton Cox</td> <td>Junior Technical Author</td> <td>San Francisco</td> <td>66</td> <td>2009/01/12</td> <td>$86,000</td> </tr> -- 省略 -- </tfoot> </table> </body> </html>

現状はhtmlで書いた時と同じ様にRailsでもダウンロードファイルを参照しています
Railsで書く場合は、gemを使わないといけないのでしょうか?
また、こうすればRailsでDataTablesが使えるよ、ボタンが表示されますよ、という様な情報あればお教えいただけますでしょうか。

情報不十分ですが、何か情報あれば教えてください。
よろしくおねがいいたします

<追記>
実際のViewのコードです

<script> $(document).ready(function() { $('#students').DataTable( { dom: 'Bfrtip', buttons: [ { extend: 'colvisGroup', text: 'Office info', show: [ 1, 2 ], hide: [ 3, 4, 5 ] }, { extend: 'colvisGroup', text: 'HR info', show: [ 3, 4, 5 ], hide: [ 1, 2 ] }, { extend: 'colvisGroup', text: 'Show all', show: ':hidden' } ] } ); } ); </script> <!-- DataTablesのデータ --> <h3>DataTablesを使ってみる</h3> <table id="students"> <thead> <tr> <th>Student Name</th> <th>Student Sex</th> <th>Student Age</th> </tr> </thead> <tbody> <% @students.each do |student| %> <tr> <td><%= link_to(student.name, student)%></td> <td><%= student.sex %></td> <td><%= student.age %></td> </tr> <% end %> </tbody> </table>

このコードでDataTablesのサンプルの様にボタンが表示してほしいのだが、表示されません。。。
イメージ説明

ボタンのみ、Jqueryが動作していないのでしょうか?

Chromeで確認してもエラー等はないです。
イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、JQuery、Datatableなどのライブラリを読込ませる、

https://code.jquery.com/jquery-3.3.1.js
https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js
https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js
https://cdn.datatables.net/buttons/1.5.2/js/buttons.colVis.min.js

cssもを読込ませる、
https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css
https://cdn.datatables.net/buttons/1.5.2/css/buttons.dataTables.min.css

group buttonの表示設定します。

js

1$(document).ready(function() { 2 $('#students').DataTable( { 3 dom: 'Bfrtip', 4 buttons: [ 5 { 6 extend: 'colvisGroup', 7 text: 'sex info', 8 show: [1], // sexのカラム表示 9 hide: [2] // ageのカラム非表示 10 }, 11 { 12 extend: 'colvisGroup', 13 text: 'age info', 14 show: [2], // ageのカラム表示 15 hide: [1] // sexのカラム非表示 16 }, 17 { 18 extend: 'colvisGroup', 19 text: 'Show all', 20 show: ':hidden' // 全部のカラム 21 } 22 ] 23 } ); 24} );

試してみてください。

投稿2018/08/04 05:56

ones

総合スコア85

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

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

tky31

2018/08/04 09:06

ありがとうございます! CDNを使わない方法も模索しており、そちらで解決いたしました! なお、CDNを使う方法はご教授いただいた方法で解決いたしました! Vendorディレクトリにbuttons.colVis.min.jsと、dataTables.buttons.min.jsを設置 viewsでVendorディレクトリに設置したファイルを読み込み <%= javascript_include_tag 'buttons.colVis.min.js' %> <%= javascript_include_tag 'dataTables.buttons.min.js' %> config/initializers/assetsにコード追加 Rails.application.config.assets.precompile += %w( buttons.colVis.min.js ) Rails.application.config.assets.precompile += %w( dataTables.buttons.min.js ) この手順で自分の環境でも動作しました!ありがとうございます。
guest

0

どうしたいのかわかりませんが、
HTMLをRailsのViewに同じように描けば同じように表示されますよ

投稿2018/08/03 01:30

satoshih

総合スコア797

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

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

tky31

2018/08/03 03:28

そうですよね。 Viewに同じように記載しているのですが、ボタンが表示されないのです。 単純にコードの書き方が間違ってる可能性もありますが…
satoshih

2018/08/03 03:31

Railsもしくはブラウザでエラーなどは出ていますか?
tky31

2018/08/03 22:55

ご連絡遅くなり申し訳ございません! いまエラーコード等 追記いたしました。 ご教授いただけないでしょうか。 よろしくお願いいたします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問