2011-10-11 6 views
13

ユーザーと顧客を入力するための100%Ajax CRUDフォームで構成されるRails 3.1アプリケーションを開発しました。私は2つの別々のモデル、コントローラ、ビューなどを作成しました。各モデルのビューには、create edit updateおよびdestroy用のjqueryファイルが含まれています。問題は、リモート操作を実行する操作を実行するときです。リモート操作は2回呼び出されます。 FirebugのコンソールビューやWEBrick出力の出力でこれが確認できます。誰でもここで起こったことを追跡するのを助けることができますか?レールが各呼び出しを2回処理する原因は何ですか?Rails 3.1のリモートリクエストが2回送信される

+0

いくつかのコードは、視点をよりよく理解するのに役立ちます。 2回呼び出されているコードを投稿してください – Rafay

+0

これは勘違いです - JavaScriptコードか[jquery-rails'](https://github.com/rails/jquery-rails)がページに2回含まれていますか?プリコンパイルを行った場合は、public/assetsフォルダを確認してください。 – Anurag

+0

@Anuragそれは私が起こっていると信じているものです。これが起こる前に、 "bundle exec rake assets:precompile"を実行しました。そのファイルを削除するだけですか? – ctilley79

答えて

13

アセットをプリコンパイルして開発モードで実行している場合、JavaScriptはページに2回含まれます。

開発モードの場合は、public/assetsからすべてを削除します。

+0

私はあなたのソリューションに従うことを試みました(つまり、パブリック/アセットのパスを一度削除してサーバを再起動しました)が、まだ質問に説明されています。私は何かを忘れていますか? – user12882

+2

キャッシュの問題です。ブラウザのキャッシュをリセットします。私がそれを理解する前に私に起こった – ctilley79

+2

あなたはそれを行うレーキコマンドがあることを知っていましたか? rake assets:あなたの端末できれいにしてください。 ;) – Kulgar

19

config.serve_static_assets = falseからdevelopment.rbを追加すると、ファイルが/public/assetsからロードされなくなります。

実際にテストモードでは、/public/assetsの静的資産しか使用されていないため、実際にはローカルでプリコンパイルする必要があります。テストでは、プロダクション資産の問題が発生する可能性があります。どうやって? config.assets.compile = falseconfig.serve_static_assets = truetest.rbに設定してください。

+1

Rails 4以降、 'config.serve_static_assets'は非推奨です。代わりに 'config.serve_static_files'を使用してください。 – Jin

関連する問題