javascript - Ruby on Rails - 包含 View 文件夹中的 javascript 文件

标签 javascript ruby-on-rails ruby ruby-on-rails-4

我的问题如下:

我想在 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/

相关文章:

javascript, js - 从父窗口访问 iframe 内的 js 函数

ruby-on-rails - Rails 2.3 + Ruby 1.9.3 启动速度仍然很慢

ruby-on-rails - 将新对象添加到集合

ruby-on-rails - 如何使用关注访问实例方法中的类方法(或变量)?

ruby - 使用 Watir 保存屏幕截图时,png 为空或 0kb

javascript - 没有任何 Ajaxed 内容的 Chrome 后退按钮 : only giving cached version of initial page,

javascript - Ratchet WebSocket(失败 : WebSocket opening handshake timed out)

javascript - 在 Backbone.history 中读取以前的 URL

ios - Devise with Facebook Omniauth - 如何使用 API 进行身份验证?

ruby - 在 RSpec 中捕获和断言 Meta 标签