更新:
私はこの質問を完全に読み間違え、それはRailsビューではなく、backbone.jsビューに関するものだと思いました。以下の答えは、実際に尋ねられたものとは異なるものです...多分それはbackbone.jsを使用している人々に関連するでしょうが、それは実際にはこの質問に答えません。申し訳ありません!
元の回答:
コードを共有するために私が行うことは、親クラスを作成し、そこに共有したいコードを含め、それを使用する各ビューにそのクラスを拡張させることです(coffeescriptの用語で)。
だから(再びcoffeescriptで)のようなもの:
app / Assets / javascripts / base_view.js.coffee(または配置したい場所)
class App.BaseView
sharedFunction: () ->
...
App.BaseView
次に、他のビュー(または親クラスと呼ぶもの)を拡張します。
app / Assets / javascripts / views / view2.js.coffee
class App.MyView1 extends App.BaseView
... sharedFunction() ...
app / Assets / javascripts / views / view2.js.coffee
class App.MyView2 extends App.BaseView
... sharedFunction() ...
のファイルが。App.BaseView
の他のビューの前にロードされていることを確認してapplication.rb
ください。(require.jsを使用している場合、ロードの順序はもちろん重要ではありませんが、そうではないと思います。)
また、メモとして、「JavaScriptの一部」のみを共有しているとおっしゃっていますが、共有モジュールの観点から最初から考える方がよいので、後でその「JavaScriptの一部」を拡張したい場合はそれを行うためのフレームワークを持っています。これは、 backbone.jsを使用したモジュールの実装に関する優れた記事です。
FWIW、これは私が取り組んでいるプロジェクトで、コードを一般的なビュークラスと共有しています: App.Threads
extendswhichextends 。ここで、coffeescriptを使用して初期化コードを共有していることに注意してください。モデルについても同じことをします。App.TranslatableFieldsView
App.BaseView
super