我的问题如下:
我想在 js.erb 文件中使用 <%render => "xx"%> - 所以我不能将它放在我的 Assets 文件夹中,因为渲染在 Assets 文件中不起作用。
我已经尝试将其命名为index.js.erb,以使rails自动包含它(它位于 View 文件夹中,见下文),但我猜它不会被包含,因为我删除了管理中的require_tree行.js(这是我的管理命名空间的“application.js”)。我不能简单地使用 require 树,因为我不希望包含 asset/javascripts/admin 中的每个 js 文件。
我在这里得到了我的js文件:
views/admin/benefits/index.js.erb
我想在以下 View 中使用它:
views/admin/benefits/index.html.erb
我在这里把事情搞得太复杂了吗?如果没有,我该如何将其纳入我的观点中? 如果重要的话:我使用 Rails 4。
最佳答案
将其移至资源中,并将可选的 yield
添加到布局文件的 head
中。
在布局文件中
<% if content_for?(:javascripts) %>
yield(:javascripts)
<% end %>
在你看来
<% content_for :javascripts do %>
<%= javascript_include_tag 'benefits/index' %>
<% end %>
我认为你误解了这个文件的用途。 js.erb
文件允许您在 JavaScript 文件中使用 Ruby。您实际上无法渲染此文件。您可以看看here更好地理解它的使用原因。
关于javascript - Ruby on Rails - 包含 View 文件夹中的 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22638851/