RubyonRails-包含来自视图文件夹的javascript文件

RubyonRails-包含来自视图文件夹的javascript文件,javascript,ruby-on-rails,ruby,ruby-on-rails-4,Javascript,Ruby On Rails,Ruby,Ruby On Rails 4,我的问题如下: 我想在js.erb文件中使用“xx”%>所以我不能将其放在我的资产文件夹中,因为渲染在资产文件中不起作用 我已经尝试将其命名为index.js.erb,以使rails自动包含它(它位于视图文件夹中,请参见下文),但我想这不会被包含,因为我删除了admin.js中的require_树行(它是我的管理名称空间的“application.js”)。我不能使用require tree simple,因为我不想包括assets/javascripts/admin中的每个js文件 我在这里得

我的问题如下:

我想在js.erb文件中使用“xx”%>所以我不能将其放在我的资产文件夹中,因为渲染在资产文件中不起作用

我已经尝试将其命名为index.js.erb,以使rails自动包含它(它位于视图文件夹中,请参见下文),但我想这不会被包含,因为我删除了admin.js中的require_树行(它是我的管理名称空间的“application.js”)。我不能使用require tree simple,因为我不想包括assets/javascripts/admin中的每个js文件

我在这里得到了我的js文件:

views/admin/benefits/index.js.erb
我想在以下视图中使用它:

views/admin/benefits/index.html.erb
我是不是太复杂了?如果没有,我将如何将其纳入我的观点?
如果重要的话:我使用rails 4。

将其移动到资产,并在布局文件的
标题中添加可选的
yield

在布局文件中

<% if content_for?(:javascripts) %>
  yield(:javascripts)
<% end %>

收益率(:javascripts)
在你看来

<% content_for :javascripts do %>
  <%= javascript_include_tag 'benefits/index' %>
<% end %>


我想你误解了这个文件的用途
js.erb
文件允许您在JavaScript文件中使用Ruby。您实际上无法渲染此文件。您可以更好地了解它的使用原因。

js.erb
文件与
respond\u to
块一起使用,允许控制器响应您的Ajax请求

def create
  respond_to do |format|
    ...
    format.js
    ...
  end
end
然后,您将拥有一个相应的
app/views/users/create.js.erb
view文件,该文件生成将在客户端发送和执行的实际JavaScript代码

$("<%= escape_javascript(render @user) %>").appendTo("#users");

我更新了我的答案,解释了
js.erb
文件的用途。我不想渲染js文件。我想在js调用中呈现一个片段,就这么简单。我可以把整个js代码直接放在我的视图中,它会工作的,但是因为这不是一个好的样式,我希望它放在一个外部js文件中。只要让js函数从js返回HTML并将其插入DOM。你解决了这个问题吗?我也有同样的问题。我正在尝试使用
渲染
并将.js.erb文件移动到我的视图文件夹中。。但现在看来,该文件根本不包括在资产管道中。
//= require admin/benefits