Rails モデル用のコンパニオン スクリプト ファイルが 1 つあります。このファイルは、jQuery/Bootstrap UI コードなどのために、12 を超えるクラスの階層に分割したコードを使用し、さまざまな種類のダイアログ間の類似点を抽出します。articles.js.coffeeここで「メインページスクリプト」として作業しているとしましょう。
Coffeescript クラスを定義し、名前window.ourproject.OurUIDialogをapp/assets/javascripts/OurUIDialog.js.coffee. Rails サーバーを再起動すると、そのクラスをサブクラス化できます (例: window.ourproject.PostInfoDialog extends window.ourproject.OurUIDialog. PostInfoDialogがarticles.js.coffee(のインスタンス化が存在する場所) にある限りPostInfoDialog、すべて問題ありません。
しかし、サブクラス ( PostInfoDialog) を別のファイル (たとえば )に移動するPostInfoDialog.js.coffeeと、メインの記事スクリプト内でそれを使って何かをしようとすると
Uncaught TypeError: Cannot read property 'prototype' of undefined
また:
- これは、Rails モデルのコンパニオン スクリプト ファイル (ここでは と呼ばれます) を中心に展開します
articles.js.coffee。 window.ourproject.OurUIDialog独自のファイルまたはarticles.js.coffeewindow.ourproject.PostInfoDialog(これは を拡張します) は、生成された HTML を表示すると、他のすべてのスクリプト ファイルに含まれていることが示されますが、別のファイルにないOurUIDialog場合にのみ使用できます。PostInfoDialog
私はこれを理解しようとして髪を引き裂いていますが、そもそもあまり残っていませんでした. 何か案は?