2

Ryan Bates Railscast nbr 258 に従って、トークン入力を小さな Rails アプリに統合しようとしています。

したがって、

vendors ディレクトリに tokeninput ファイルを追加しました

次に、application.js ファイルを次のように変更します。

//
//= require jquery
//= require jquery_ujs
//= require jquery.tokeninput
//= require bootstrap
//= require chosen-jquery
//= require jquery_nested_form
//= require bootstrap-datetimepicker.min
//= require_tree .

次に、このコードをファイルcategories.js.coffeeに追加しました

jQuery ->
  $('#company_category_list').tokenInput('/categories.json',
    theme: 'facebook'
    prePopulate: $('#company_category_list').data('load')
  )

フォームに移動すると、ブラウザ コンソールに次のように表示されます。

TypeError: $(...).tokenInput is not a function
[Break On This Error]   

prePopulate: $('#company_category_list').data('load')

数時間探しましたが、このエラーの原因がわかりません。jquery.tokeninput ファイルは、アセット パイプラインによって正しく読み込まれているようです。

どんな助け、提案も歓迎します!

4

1 に答える 1

1

要約する:

私が抱えていた問題は、一度アセットをプリコンパイルしてから、その場でコンパイルすることにしたという事実によるものでした:

  • 開発モードでのデバッグには不便です
  • Heroku は、コードのプッシュ時にプリコンパイルを自動的に管理します

プリコンパイルにより、パブリック フォルダーに縮小版のアセットが作成されました。

Web サイトを実行すると、すべての JavaScript ファイルが 2 回読み込まれました。パブリック フォルダーから 1 回、通常のフローから 1 回です。

パブリックフォルダーにあるものを削除しただけで、問題は解決しました。

于 2013-10-10T06:53:14.007 に答える