0

Rails 3.2.6を使用しており、app/assets/javascriptsの下のapplication.jsファイルがbyでリンクされています。後のapplication.js<head><%= javascript_include_tag 'application' %>

//= require jquery
//= require jquery_ujs
//= require_tree .

私が追加しました

$(document).ready(function() {
    console.log('doc ready');
})

同じディレクトリに新しいjavascriptファイルmy.jsを作成してもapplication.jsにコンパイルされないため、機能しているかどうかをテストするだけです(これはまったく別の問題です)。JavaScript コンソールに、「Uncaught ReferenceError: $ is not defined」というエラーが表示されます。ターミナルで a を実行したところgem list、 が表示されjquery-rails (3.0.4)ました。私のGemfileには、 gem 'jquery-rails' が表示されます。

jQuery がアプリに正しく読み込まれないのはなぜですか?

更新:私が言ったようにgem list、ターミナルに入力すると、 が表示されますjquery-rails (3.0.4)。ただし、入力するbundle installと が表示されUsing jquery-rails (2.1.3)ます。このエラーの原因となる何らかの競合がある可能性はありますか?

4

1 に答える 1

0

アセット パイプラインは無効になっていますか? そうであれば、rake タスクを実行して jQuery をインストールする必要があります。

jquery-rails GitHub ページから:

Rails 3.1 以降 (アセット パイプラインが有効になっている場合)

jquery および jquery-ujs ファイルがアセット パイプラインに追加され、使用できるようになります。デフォルトで app/assets/javascripts/application.js にない場合は、次の行を追加します。

//= require jquery
//= require jquery_ujs

jQuery UI については、jquery-ui css が含まれており、カスタマイズが容易な jquery-ui-rails gem をお勧めします。この gem には、互換性のために jQuery UI JavaScript が引き続きパッケージ化されています。これを使用するには、次の行を application.js に追加します。

//= require jquery-ui

jQuery UI のテーマ部分を使用するには、独自のテーマ CSS を提供する (または上記の jquery-ui-rails gem を使用する) 必要もあります。

Rails 3.0 (アセット パイプラインが無効な場合はそれ以上)

この gem は、単一のジェネレーター jquery:install を追加します。ジェネレーターを実行すると、たまたま持っている Prototype JS ファイルが削除され、jQuery と Rails 用の jQuery-ujs ドライバー (オプションで jQuery UI) が public/javascripts ディレクトリにコピーされます。

この gem は、Rails 構成プロセスにもフックし、Prototype を削除し、javascript_include_tag(:defaults) 呼び出しによって含まれる JavaScript ファイルに jQuery を追加します。この gem には、縮小されたバージョンと縮小されていないバージョンの jQuery および jQuery UI が含まれていますが、縮小されたバージョンのみが :defaults に含まれています。

ジェネレーターを呼び出すには、次を実行します。

rails generate jquery:install #--ui to enable jQuery UI

あなたは終わった!

ドキュメント: https://github.com/indirect/jquery-rails

于 2013-11-08T23:11:37.167 に答える