几点。首先,在这种情况下,这应该有效:
<%= javascript_include_tag params[:controller].split('/').last %>
但是,如果您在每个页面上都有它,并且一个控制器没有 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 %>
此外,在较新版本的 Rails 中,您可以controller_name
使用params[:controller]
您可能还想考虑只将 渲染organization.js
到您的application.js
(这将在 Rails 3.1 及更高版本的资产管道中自动完成)。如果它包含用户在访问期间可能会点击的 JS,那么减少需要下载的文件数量可能是值得的。