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

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

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

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

900閲覧

Rails5.1.3、turbolinks5,でjqueryのdatepickerを使う方法教えてください。

koume

総合スコア458

Ruby

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2017/08/18 12:40

編集2017/08/19 01:49

Webアプリを学習しながら制作していますが、参考書のバージョンより新しいバージョンをいろいろインストールしてしまい、望んだ
通りに動いてくれなくて困っております。(都度、皆様に助けてもらっております。)
今、日付入力欄にdatepickerで日付選択ができるようにしたいのですが、たぶんturbolinksのバージョンの違いで発火してくれて
いないようです。
「変更する」、「変更しない」の切り替えは ***.js.coffeeのファイルを以下のようにしたら動いてくれました。

$(document).on 'turbolinks:load', -> $('form.edit_staff_member').on 'click', '#enable-password-field', -> $('#enable-password-field').hide() $('#disable-password-field').show() $('#staff_member_password').removeAttr('disabled') $('label[for=staff_member_password]').addClass('required') $('form.edit_staff_member').on 'click', '#disable-password-field', -> $('#disable-password-field').hide() $('#enable-password-field').show() $('#staff_member_password').attr('disabled', 'disabled') $('label[for=staff_member_password]').removeClass('required')

のように1行目を $(document).on 'page:change', ->から変更し記述ました。
原因はturbulinnks5からはこのように指定しなければならないとのことでした.

そこで、datepickerも同じ記述をしてやりましたがこちらは動きませんでした。(2カ所のコードを記述します)

$(document).on 'page:change', -> $('.birthday-picker').datepicker({ minDate: new Date(1900, 1, 1), maxDate: new Date(), changeMonth: true, changeYear: true, yearRange: '1900:+00', defaultDate: '1970-01-01' })
$(document).on 'page:change', -> d = new Date() $.datepicker.setDefaults({ dateFormat: "yy-mm-dd", minDate: new Date(2000, 1, 1), maxDate: new Date(d.getFullYear() + 1, d.getMonth(), d.getDate() - 1) }) $('.datepicker').datepicker()

上の2つを以下でためしてみましたが同じでした。

ページ切り替え時(初回ページも対象)

$(document).on 'turbolinks:load', -> console.log 'turbolinks:load'

ページ切り替え時(初回ページは対象外)

$(document).on 'turbolinks:render', -> console.log 'turbolinks:render'

ページ遷移前

$(document).on 'turbolinks:request-start', -> console.log 'turbolinks:request-start'

Gemfileは以下でbundle updateしています。
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'jquery-turbolinks'

app/assets/stylesheets/staff.cssの内容は以下です。
/*
*= jquery.ui.datepicker #requireを削除するようにエラーが出たので削除しました。
*= require_tree ./shared
*= require_tree ./staff
*/
datepickerを使用するにはどうしたらいいのでしょうか?どなたか教えていただけないでしょうか?
宜しくお願いします。

追記させていただきます。動作確認をしたところ、「変更する」、「変更しない」も発火しなくなってしまいました。
少し前まで動いてくれていたのですが、エラーもでていないので原因がわからず困っております。
「変更する」、「変更しない」の部分のコードは何もいじっていないのに動かなくなる原因はどこに原因があるのでしょうか?

エラー内容追記

Sprockets::FileNotFound in Staff::Sessions#new Showing /home/vagrant/chibi/chibi/app/views/layouts/staff.html.erb where line #6 raised: couldn't find file 'jquely-ui/i18n/datepicker-ja' with type 'application/javascript' Checked in these paths: /home/vagrant/chibi/chibi/app/assets/config /home/vagrant/chibi/chibi/app/assets/images /home/vagrant/chibi/chibi/app/assets/javascripts /home/vagrant/chibi/chibi/app/assets/stylesheets /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-turbolinks-2.1.0/vendor/assets/javascripts /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-ui-rails-6.0.1/app/assets/images /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-ui-rails-6.0.1/app/assets/javascripts /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-ui-rails-6.0.1/app/assets/stylesheets /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-rails-4.3.1/vendor/assets/javascripts /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/coffee-rails-4.2.2/lib/assets/javascripts /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.1.3/lib/assets/compiled /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionview-5.1.3/lib/assets/compiled /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/turbolinks-source-5.0.3/lib/assets/javascripts Extracted source (around line #7): 5 //= require turbolinks 6 //= require jquery-ui/widgets/datepicker 7 //= require jquely-ui/i18n/datepicker-ja 8 //= require_tree ./shared 9 //= require_tree ./staff Rails.root: /home/vagrant/chibi/chibi Application Trace | Framework Trace | Full Trace app/assets/javascripts/staff.js:7 app/views/layouts/staff.html.erb:6:in `_app_views_layouts_staff_html_erb___4578289695913132902_69866452249820' app/controllers/staff/sessions_controller.rb:9:in `new'

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

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

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

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

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

kjml

2017/08/18 15:01

前回の質問(の追記)にあったエラーの解消はされましたか? couldn't find file 'jquery.ui.datepicker' with type 'application/javascript' というエラーでしたのでそのままでしたらdatepickerが動かない可能性が高いと思われます。いまだにどこで「requireを削除するように」指示があったのかわからないままですが・・・
koume

2017/08/18 23:48

回答ありがとうございます。requireを記述したままでブラウザで画面を開こうとするとエラーが出てしまい、削除するとページを開くことができました。
guest

回答1

0

ベストアンサー

前回のエラーログあたりから、jquery-ui-rails-6.0.1 を使用、という事は、バージョンは6なので
application.js の記述は(訂正:ここはadmin.jsで書いているんでしたね)

//= require jquery-ui/widgets/datepicker //= require jquery-ui/i18n/datepicker-ja

とすべきではないでしょうか。(-ハイフンと/スラッシュに注意)
参考:RailsでjQuery-uiのDatePickerを日本語表示する-jquery-ui-rails(6..)

追記:
あと、application.css はどうなのでしょう?
*= require jquery-ui/datepicker と記述するようにとリンク先でも書いてありましたが・・・
(ここでも-ハイフンと/スラッシュに注意)

投稿2017/08/18 15:12

編集2017/08/18 15:25
kjml

総合スコア219

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

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

koume

2017/08/19 02:08

回答ありがとうございました。教えていただいた通りに記述しましたが、エラーが出てしまいました。 エラー内容は、本文中に追記させていただきました。(翻訳したところ以下のように表示) //ターボリンクが必要です // jquery-ui / widgets / datepickerが必要です // jquely-ui / i18n / datepicker-jaが必要です。 // = require_tree ./shared // = require_tree ./staff それで指定されたところのRequireを削除してリロードすると画面は表示されますが、datepickerは動いてくれませんし、turbolinksまで動かなくなってしまいました。エラーコードにあったstaff.html.erbの 6行目は以下になっています。 <%= javascript_include_tag 'staff', 'data-turbolinks-track' => true %>何がいけないんでしょうか? また、Sprockets::FileNotFound in Staff::Sessions#newも出ていますが
kjml

2017/08/19 08:01

追記されたエラーメッセージを良く見て下さい。 couldn't find file 'jquely-ui/i18n/datepicker-ja' with type 'application/javascript' とありますが、綴りがちがっていませんか? jquely ではなく、 jquery です。
kjml

2017/08/19 08:44

なんかエラーメッセージを勘違いされているような気がしてしょうがないのですが、 エラーメッセージ内にある行番号付きの 5 //= require turbolinks 6 //= require jquery-ui/widgets/datepicker は、原因となっている箇所(ファイル)の中身を表示して「こう書いてあるけど…」と示しているだけですので、 turbolinksを「使います(=require)」、jquery-ui/widgets/datepicker を「使います」、という宣言しているというか設定です。 「require」 は「必要です(がそれが無くてエラーになっています)」という意味のエラーメッセージではありません。実際そのファイルを開いて見ればわかると思いますが、そのままrequireが書いてあるはずです。 エラーの内容は、 「jquely-ui/i18n/datepicker-ja を使用します」という設定に対し、 その datepicker-ja を探しに行くとありませんでした、というエラーメッセージです。 (このときの「使用します」というのが requireです)
koume

2017/08/20 01:22

回答ありがとうございます。ご指摘の通りスペルミスが原因でした。 お騒がせいたしました。今度とも宜しく願いします。
koume

2017/08/28 10:16

以前はお世話になりました。また、jqueryに関して疑問点がありましたので 新たに質問させていただいております。もし、回答していただけるようでしたらお願いできますでしょうか?なかなか回答が得られないので困っております。宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問