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

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

ただいまの
回答率

90.34%

  • Ruby on Rails

    9559questions

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

railsにカレンダーDateTimePickerの導入

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,498

koppe1989

score 25

お世話になっております。
プログラミング、railsとも初心者です。

scaffoldで作成した入力フォームで
日付を入力する際に、カレンダーで入力サポートする仕様
としたく、挑戦しております。

下記記事を参考にしました。
http://blog.hello-world.jp.net/javascript/1762/

ご教授お願いします。

(1)Gemfile の最終行に以下を追加してbundle install
gem 'momentjs-rails'
gem 'bootstrap3-datetimepicker-rails'

(2)app/assets/javascripts/application.js  最終行に以下をコピぺ
//= require moment
//= require bootstrap-datetimepicker
var data = {'data-date-format': 'YYYY-MM-DD' };
$(function(){
  $('.datepicker').attr(data);
  $('.datepicker').datetimepicker();
});

(3)app/assets/stylesheets/application.css 最終行に以下をコピぺ
*= require bootstrap-datetimepicker
コピペ後、こんな感じ
/*
 * This is a manifest file that'll be compiled into application.css, which...
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/asset...
 *~途中省略・・
 *= require_tree .
 *= require_self
 *= require bootstrap-datetimepicker
 */

(4)viewの_form.html.erbを編集
編集前 
~
 <div class="field">
 <%= f.label :date %><br>
 <%= f.text_field :date %>
 </div>
~
編集後 
~
<div class="field">
    <%= f.label :date %><br>
    <%= f.text_field :date, :class => 'datepicker' %>
</div>
~
上記のように変更しました。
(2)(3)のコピペ部分がコメントアウトのようになるのが気にかかっていたのですが、
そのような文法だと把握しました。

現在(4)を修正し、
f.text_fieldの部分をクリックすることでカレンダーが表示されるようなりましたが、
2点問題があります。
ⅰ)ページ遷移した後、カレンダーが表示されない(リロード後に表示される)
ⅱ)表示カレンダ-が意図していないcssの影響をうけている(/app/assets/stylesheets/scaffolds.scssに記載したもの)
です。

(ⅰ)はTurbolinksが影響している?との記事を見ました(http://qiita.com/devzooiiooz/items/07d45af1c9f307e69061)が、jsの訂正方法がわかりません。
(ⅱ)は現在調査中です。私には同じidやclassを共有しているようには見えないのですが

以上、お心当たりがございましたら
ご教授お願い申し上げます。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • gouf

    2015/10/13 20:50

    うまくいかない、というのはどんなところですか、何が想定と違うのですか

    キャンセル

  • koppe1989

    2015/10/15 20:02

    gouf様またよろしくお願い致します。

    キャンセル

回答 1

checkベストアンサー

+1

var data = {'data-date-format': 'YYYY-MM-DD' };
$(function(){
  $('.datepicker').attr(data);
  $('.datepicker').datetimepicker();
});



var data = {'data-date-format': 'YYYY-MM-DD' };
var ready = function(){
  $('.datepicker').attr(data);
  $('.datepicker').datetimepicker();
};

$(document).ready(ready);
$(document).on('page:load', ready);

このように変更してみてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/15 20:01

    有難うございます。途方にくれており、Turbolinksなしで動作させておりました。
    機会がございましたら、また回答していただけると幸いです。

    キャンセル

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails

    9559questions

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