2011-05-16 16:05:50 +0900
Rails 3.1ではjQueryが標準になるそうなので、すぐに要らない知識になるかもしれませんが、Rails 3.0でのjquery-railsの使い方を残しておきます(このエントリの対象はjquery-rails 1.0.2
)。
まず、Gemfile
に以下のような記述を追加して、bundle
します。
gem 'jquery-rails''
ジェネレータを実行して、不要なファイルの削除と必要なファイルの生成を行います。
$ rails g jquery:install
このジェネレータによって、prototype.js関連の以下のファイルが削除され、
public/javascripts/prototype.js
public/javascripts/effects.js
public/javascripts/dragdrop.js
public/javascripts/controls.js
jQuery関連の以下のファイルが生成されます(jquery-rails 1.0.2
の場合はjQuery 1.6がインストールされます)。
public/javascripts/jquery.js
public/javascripts/jquery.min.js
public/javascripts/jquery_ujs.js
(各種ヘルパーで生成した要素にイベントハンドラを設定したりするもの。かつてのrails.js
)
jQuery UIのファイルもあわせて生成する場合はジェネレータに--ui
オプションを指定します。
$ rails g jquery:install --ui
この場合、以下の2つのファイルも生成されます。
public/javascripts/jquery-ui.js
public/javascripts/jquery-ui.min.js
あとは、config/application.rb
で以下のようにデフォルト(:defaults
)で読み込むJavaScriptファイルを指定して、
# JavaScript files you want as :defaults (application.js is always included).
config.action_view.javascript_expansions[:defaults] = %w(jquery.min jquery_ujs)
レイアウトファイルなどからjavascript_include_tag
ヘルパーを使い:defaults
をインクルードさせます(当然、個別にSCRIPT要素で指定しても問題ない)。
<%= javascript_include_tag :defaults %>
jquery-rails
がアップデートした場合は(バンドルされるjQueryのバージョンアップ時など)、ジェネレータを再度実行して*.js
ファイルを上書きしたものをリポジトリにコミットすればOK。
なお、ヘルプによると--version
オプションを指定することで、インストールされるjQueryのバージョンを明示できるようですが、今の実装だと1.6が固定でインストールされるような気がします。