2011-10-26 17 views
1

私は自分のビューの1つに入れ子になったフォームを入れようとしています。私はnested_form Gemをインストールし、インストール手順を実行しました。私は最後のものは、このラインrails:javascript_include_tagが不正なパスをレンダリングする

<%= javascript_include_tag "nested_form" %> 

を含めるように私のアプリ/ビュー/レイアウト/ application.html.erbファイルを編集しかし、私はレンダリングされたページを見たときには、Javascriptを動作しませんでした。私は、ページのソースを調べて、nested_form javascriptのためのレンダリングされたコードはこのようになっていることを見た:

<script src="/assets/nested_form.js" type="text/javascript"></script> 

だから、それは間違った場所で探しているように見えます。その.jsファイルは、アセットではなくpublic/javascriptsにあります。私は何か間違っているか、javascript_include_tagに何か他のものを指定する必要がありますか?

+0

に行われます? –

+1

そうだとすれば、彼は資産を全く得られないでしょう... – Chowlett

+0

申し訳ありません、私は3.1を意味しました。とにかく、ケンはそれに答えました。 :P –

答えて

6

レール3.1以降では、javascript_include_tagはアセットパイプラインでのみjavascriptを探します。あなたがRoRのアプリケーションを初期化するとき、あなたの資産パイプラインに公開/ JavaScriptを追加したい場合は、単にあなたの

Rails.application.config.assets.paths 

配列に公共のパスを追加し、以降、アセットパイプラインは見てのパスを定義します。

あなたは間違ったことをしていませんでした。あなたが使用している宝石は、時代遅れであり、それはレール用です。パブリックフォルダからassetsフォルダにjavascriptを移動し、動作するかどうかを確認することをおすすめしますが、それは3.1アプリケーションにjavascriptを入れるのが好ましい方法です。

問題を解決するもう1つの方法は、推奨しませんが、アセットパイプラインを使用していない場合は、完全に無効にすることです。これは、あなたがレール3を実行していますあなたのconfig/application.rb

config.assets.enabled = true 

を除去することにより、アセットパイプラインについての詳細をお知りになりたい場合は、Railscastsがそれにビデオを持っている http://railscasts.com/episodes/279-understanding-the-asset-pipeline

関連する問題