Rails和页面特定的Javascript

好的,我意识到这个问题已被多次询问,但答案似乎从来没有解决我对此的问题。

我有一个js文件,我只想包含在特定的页面上。 有很多回复表明我将文件放入文件夹,然后在清单文件中仅引用那些文件夹 – 例如,这个Railscast(大约在06:20)就此进行了讨论。

但是,我只有一个应用程序布局文件(我想这可能是我缺少的区域) – 因此这个文件指向application.js清单,因此我无法看到如何有条件地包含内容。

它有点像这个资源 – http://railsapps.github.io/rails-javascript-include-external.html – 向下滚动到页面特定的脚本子标题,它重复了Railscast建议的内容。 但是没有提到多个应用程序布局文件。

如果有人能帮助我澄清在这种情况下该做什么,我将非常感激。

我或许应该指出我正在使用Rails 4。

application.html.erb ,使用此选项添加控制器特定的javascript而不是特定于应用程序的javascript。 确保删除require_tree

 <%= javascript_include_tag params[:controller] %> 

阅读有关Rails指南的更多信息 。

您可以在视图中使用content_for在要呈现所述视图时将内容“注入”到布局中。 请参阅: using-the-content-for-method

你需要做一些事情来实现这个目标:

  1. 添加占位符以生成布局中的内容。 恩。

    <%= yield :js %>

  2. 将块(要生成)添加到视图中。 例如:

    <%= content_for :js do %> <%= javascript_include_tag "my_script" %> <% end %>

  3. 如果您在生产中使用资产管道并且想要引用特定资产(如“my_script.js”),请在您的production.rb或相关环境config.you中,需要使用以下命令对其进行预编译:

    config.assets.precompile=["my_script.js"]