2012年9月28日金曜日

jQueryのカレンダー(Datepicker)

jQueryのDatepickerを初めて使ってカレンダーを表示させてみました。
なかなか便利だけど、ハマったところもあり。
バージョンはこれ。
  • Rails 3.2
  • jQuery 1.8.23

最初は、'jquery-ui-rails' のGemを使ったのですが、ローカルのWEBRickのproductionモードでは動いたのに、Apacheにすると前月/翌月のアイコンが表示されない問題に遭遇。
画像ファイルは、Gemに入ってるのでどうにもならず、Gemを使うのをやめました。

さて、jQueryのファイルをどこに置くのか。
こちらのサイトを参考にしました。
http://www.ninxit.com/blog/2012/04/08/railsjqueryuidatepicke/


  • JSファイルの配置
app/assets/javascripts/jquery-ui-1.8.23.custom.min.js
  • JSファイルの読み込み
$ vi app/assets/javascripts/application.js
//= require jquery
//= require jquery-ui 
//= require jquery_ujs
//= require_tree .
  • CSSファイルの配置 
app/assets/stylesheets/jquery-ui/jquery-ui-1.8.23.custom.css
  • CSSファイルの読み込み
$ vi app/assets/stylesheets/application.css
*= require_self
*= require_tree .
*= require_tree ./jquery-ui 

  • 画像ファイルの配置(ここ注意! images/imagesになります) 
app/assets/images/images/*.png

  • 日本語化対応のファイル配置
app/assets/javascripts/jquery.ui.datepicker-ja.js
  • 日本語化対応のファイル読み込み
    • 下記からjaのファイルを取得します。 
    http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/ 
$ vi app/assets/javascripts/application.js 
//= require jquery.ui.datepicker-ja
  •  あとは、いつもどおり precompile。
$ bundle exec rake assets:precompile RAILS_ENV=production
$ rails s -e production

ハマったところは、上記の赤字にある画像ファイルのパス。
ググると皆いろいろなことを書いてます。
環境によるのかもしれませんね。
cssには、 url(images/ui-bg_glass_75_ffffff_1x400.png) のような定義をされているので、
imagesディレクトリの中のimagesディレクトリという読み方になってしまってます。
CSSの定義を変えても良いのですが、将来的のバージョンアップを考えると
あまり好ましくないということで、画像ファイルの配置場所を変えることにしました。
Rails3はややこしい(>_<)

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。