charlyto の考えは正しかった。
答えは、ビュー/モデルとしてスプロケットと YUI モジュールを使用することでした。
//*=require_self
//*=require view/file_a.js
//*=require model/file_a.js
//*=require view/file_b.js
//*=require model/file_b.js
YUI().use('app','app-view-file-a','app-view-file-b','app-model-file-a','app-model-file-b', function(Y) {
Y.FileApp = Y.Base.create('fileApp', Y.App, [], {
views: {
fileA: {type: 'FileAView'},
fileB: {type: 'FileBView'}
}
}, {
ATTRS: {
root: {value: '/'}
}
});
var app = new Y.FileApp({
contentSelector: '#pjax-content',
serverRouting: true,
transitions: true,
container: '#file-app',
viewContainer: '#file-app-views'
}).render().showContent('#pjax-content', {view: 'FileAView'});
});
ビューとモデル ファイルでは、通常の YUI3 モジュールの場合と同じように作成します。
YUI.add('app-view-file-a', function(Y) {
Y.namespace('FileAView');
FileAView = Y.Base.create('fileAView', Y.View, [], {
template: Y.Handlebars.compile(Y.one('#file-a-template').getHTML())
});
Y.FileAView = FileAView;
},'0.1.0',{requires:['node','handlebars'], skinnable:false});
最初に、私は実際に File.read を JS 内で動作させました。しかし、この方法は非常に厄介で、開発分野ではうまく機能しませんでした。タイムスタンプが変更されていないため、Rails は「親」の js ファイルを再コンパイルすることを知りませんでした。YUI を使用していない場合は、File.read ソリューションが機能する可能性がありますが、別のソリューションを探します。子モジュールに変更を加えるたびに、新しい行を入力して削除する必要があり、かなり面倒でした。