[英]Ruby on Rails 4: How to include Javascript files in Rails web application?
[英]Ruby on Rails - Include javascript files from view folder
我的問題如下:
我想在js.erb文件中使用<%render =>“ xx”%>-因此我不能將其放在我的資產文件夾中,因為渲染在資產文件中不起作用。
我已經嘗試將其命名為index.js.erb以便自動將其包括在內(它位於視圖文件夾中,請參見下文),但是我猜想它沒有包含在內,因為我刪除了admin.js中的require_tree行(這是我的管理名稱空間的“ application.js”。 我不能簡單地使用require樹,因為我不希望包含資產/ javascripts / admin中的每個js文件。
我在這里有我的js文件:
views/admin/benefits/index.js.erb
我想在以下視圖中使用它:
views/admin/benefits/index.html.erb
我在這里過於復雜嗎? 如果沒有,我該如何納入我的看法? 如果重要:我使用滑軌4。
將其移至資產,並在布局文件的head
添加可選的yield
。
在您的布局文件中
<% if content_for?(:javascripts) %>
yield(:javascripts)
<% end %>
在您看來
<% content_for :javascripts do %>
<%= javascript_include_tag 'benefits/index' %>
<% end %>
我認為您誤會了此文件的用途。 js.erb
文件允許您在JavaScript文件中使用Ruby。 您實際上無法渲染此文件。 您可以在此處查看使用原因的更好理解。
js.erb
文件與使用respond_to
塊,允許控制器到您的Ajax請求作出回應。
def create
respond_to do |format|
...
format.js
...
end
end
然后,您將擁有一個相應的app/views/users/create.js.erb
視圖文件,該文件將生成實際的JavaScript代碼,這些代碼將在客戶端上發送和執行。
$("<%= escape_javascript(render @user) %>").appendTo("#users");
更多信息在這里
例如,您可以在assets/javascript/admin/benefits.js
定義javascript代碼。 僅在application.js
包含此文件,例如:
//= require admin/benefits
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.