2012-12-13 34 views

回答

1

您可以使用content_for標記將頁面特定內容添加到頁面的頭部。

在你

application.html.erb(你的佈局文件)您的JavaScript下包括添加這樣一行

<%= content_for :js_include %>

然後在任意頁面要包括頁面特定的JavaScript你只是做

<% content_for :js_include do %> 
    <%= javascript_include_tag "some_javascript_file" %> 
<% end %> 

我不確定你是否有t o包含javascript_include_tag上的=標誌(只要確保將它放在application.html.erb文件中,但這非常重要。使用content_for標籤

編輯

一些有用的鏈接

Railscasts Episode Layouts and Content For

Rails API content_for

0

方法很多:

<%= javascript_tag "...javascript..." %> 
* Generates <script type="text/javascript">...javascript...</script> 

或者

<% content_for :script do %> 
    ...javascript... 
<% end %> 
* This approach includes script into <%= yield :script %> defined in the template anywhere, for example inside the <head> dom: 
<head> 
    ... 
    <% if content_for?(:script) %> 
    <%= javascript_tag yield(:script) %> 
    <% end %> 

</head> 

或許多其他許多方式。

1

默認來說,Rails 3將包括的application.js包含//= require_tree使得它依賴於所有其他的JS文件/應用/資產/ JavaScript的

您可以通過添加以下刪除//= require_treeapplication.html.erb的application.js<%= javascript_include_tag "application" %>,包括特定的控制器JS:

<%= javascript_include_tag params[:controller].split("/")[0]) 

然後,讓JS文件(應用/資產/ Java腳本/控制器-NAME。JS),用於容納每個控制器:

  1. //= require application
  2. 你的控制器特有的JS

然後,這些將取決於的application.js,但可以有自己的JS也是如此。

.split方法可以像設計控制器之前,用自己的名字/作爲的.js文件的文件名,所以你只需要創建devise.js,而不是色器件/ sessions.js等。

0

要將特定的JavaScript文件只包含在特定的視圖頁面中,您需要按照以下步驟操作。

i) In the assets folder create a separate folder eg. 'separate_view' , and inside put your specific js, and css files. 

ii) In the application lay out write like following for 'separate_view'. 
    <%= yield :separate_view %> 

iii) In your target template write the following for 'separate_view'. 
    <% content_for (:separate_view) do %> 
    <%= javascript_include_tag "xxx.js" %> 
    <%= stylesheet_link_tag "xxx.css" %> 
    <%end%> 

上述內容將適用於您的特定視圖文件。

相關問題