2011-07-20 139 views
1

我幾乎是Ruby on Rails的世界的新手,幾個星期後我跟隨琳達的良好的紅寶石的軌道指南,所以我知道如何建立一個項目等。無論如何,我在html/css中創建了一個網站,但畢竟想用rails來做,所以我去上班了。我喜歡你如何才能「轉儲」文件夾和導軌中的文件,只是選擇了它們,但我也在我的網站上有幾行javascript代碼來「激活」jquery關注。這是在我的頭Ruby on rails3在哪裏放javascript代碼

<script type="text/javascript" id="sourcecode"> 
    $(function(){ 

    $('.scroll-pane').jScrollPane({ 
    showArrows: false, 
    autoReinitialise: true 
     }); 

}); 
</script> 

所以簡單的現在的問題是,你在哪裏我把這個代碼,因爲軌道並沒有真正有一個。

回答

1

查看此頁面佈局和渲染:http://guides.rubyonrails.org/layouts_and_rendering.html

有一個關於你的渲染ERB模板有一個部分。您需要將您的JavaScript代碼放在您的.erb模板中,就像在普通的HTML頁面中一樣。

要清楚,您可以將腳本標記的內容保存到.js文件中,並將其鏈接到模板中,就像在純HTML中一樣。

1

您可以將您的JS:

  • 在它與
  • 下公開交易的ERB模板/在一個正常的.js javscripts文件,您可以在模板中使用的javascript_include_tag幫手
  • 在包括對於纔算是Ajax /手動單獨.js.erb模板文件包括目的

EDITED,每建議:

就我個人而言,我會選擇最後2箇中的一個,因爲這些更多的是Convention over Configuration,或者是「Rails」方式,這是我相信您正在尋找的方式。

+0

那麼,你可以解釋你的最後一句話。巫毒編程來自這樣的陳述。 – Jordan

+0

那麼我試圖把代碼放在公共/ JavaScript文件夾中的「jquery_slider.js」文件中,但它似乎沒有幫助。所以我會嘗試你的第一個選擇,但是就像喬丹說的,我想知道它有什麼不好的地方。 – alucardu

+0

請參閱@ Nick對包含作爲測試的標籤的回覆。但是,然後將包含更改爲<%= javascript_include_tag:name_of_js_file%>。我給出的第一個選擇很糟糕,因爲它就像直接在HTML文件中包含JavaScript一樣。將HTML/javascript/css合併到同一個文件中將創建難以管理的項目。 – WattsInABox

0

我把所有的腳本放在public/javascripts目錄結構中,該目錄結構可以映射控制器/操作名稱+供應商目錄和公用目錄。在我的application.html。*中,我有代碼將我需要的控制器/操作加載到標題中。我非常努力地不把JavaScript放到我的.haml(.erb)文件中,但是如果必須的話,我願意打破這個規則。

0

我會把它們放在public/javascripts/之前,直到Rails 3.1。

此外,請確保您在模板中包含您的JavaScript。

<% javascript_include_tag :all %> 
+0

不導軌會自動將該文件夾中的所有js文件放在標題中? – alucardu

+0

否。只有在應用程序模板文件中的'<%javascript_include_tag:all%>'添加到''塊中時纔會生效。 –

0

對於負載的原因,你不希望模板加載之後,而不是在開始的時候(例如:叫頭)被稱爲特定的JavaScript代碼片段?