2

通常のリソースとしても、「管理者」の下の名前空間としても使用できるコントローラー「組織」があります。

組織のアクションにのみ関連する JavaScript を追加する必要があり、それは管理名前空間と非管理名前空間の両方に適用されます。ファイル「organizations.js.coffee」を作成し、レイアウトファイルに次のようなものを含める必要があることをガイドで読みました。

<%= javascript_include_tag params[:controller] %>

問題は、params[:controller] に admin 名前空間の /admin が含まれていることです。

私がこれを行うべき適切な方法は何ですか? ありがとう!

4

1 に答える 1

2

いくつかのポイント。まず、この場合、これは機能するはずです。

<%= javascript_include_tag params[:controller].split('/').last %>

ただし、すべてのページにそれがあり、1つのコントローラーにJSファイルがない場合は、問題が発生するため、代わりに次のことを行うことをお勧めします。

<% if params[:controller].split('/').last == "organization" %>
  <%= javascript_include_tag "organisation" %>
<% end %>

これをヘルパーメソッドとして追加することはおそらく価値があります。例:

module OrganizationHelper
  def organization_javascript
    javascript_include_tag "organization" if params[:controller].split('/').last == "organization"
  end
end

<%= organization_javascript %>

controller_nameまた、新しいバージョンのRailsでは、代わりにを使用できますparams[:controller]

また、をにレンダリングすることを検討することもできorganization.jsますapplication.js(これは、Rails 3.1以降のアセットパイプラインで自動的に実行されます)。ユーザーが訪問中にヒットする可能性のあるJSが含まれている場合は、ダウンロードする必要のあるファイルの数を減らすために実行する価値があります。

于 2012-06-13T00:52:56.797 に答える