2 つの提案があります。1 つ目はハッキーで、2 つ目はすばらしいものです。
1. マニフェスト + レイアウト
異なる JS の組み合わせを必要とするビュー用に新しい JS マニフェスト ファイルを作成し、新しいレイアウトからそのマニフェスト ファイルを呼び出し、それらのビューをレンダリングするコントローラー アクションから新しいレイアウトを呼び出します。
あなたの例では:
app/assets/javascripts/resource.js.coffee
// Requires
//= require_whatever_js_files_your_resource_page_needs_here
// Custom JS below
...
アプリ/ビュー/レイアウト/resource.html.erb
...
<%# Within your <head> tag %>
<%= javascript_include_tag "resource" %>
...
app/controllers/resources_controller.rb
class ResourceController < ApplicationController
# filters, default layout, other actions, etc.
...
# Your action that needs only the resource JS,
# and therefore the resource layout
def action_that_only_uses_resource_js
@some_objects = SomeObjects.all
render layout: 'resource' # <- This is the important part
end
明らかに、この方法は柔軟ではないため、特にうまくスケーリングしません。つまり、JS を好きなように組み合わせることができず、間違いなく必要になります。これにより、JS を次のように分割することができます...
2. RequireJs モジュール
この gemを使用してRequireJsを Rails に統合します。探しているモジュール性が得られ、競合が発生するのを防ぐことができます。RequireJs は、あなたが探しているものだと私が信じているAMD パターンを採用しています。