2011-10-26 109 views
1

我想將嵌套窗體放入我的視圖之一。我已經安裝了nested_form Gem並執行了安裝步驟。我做的最後一件事是編輯我的應用程序/視圖/佈局/ application.html.erb文件,包括該行rails:javascript_include_tag呈現不正確的路徑

<%= javascript_include_tag "nested_form" %> 

但是,當我看着呈現的頁面時,JavaScript不起作用。我檢查網頁的源文件,看到了nested_form的JavaScript渲染代碼如下所示:

<script src="/assets/nested_form.js" type="text/javascript"></script> 

所以這似乎是找錯了地方。該.js文件位於public/javascripts中,不在資產中。我做錯了什麼,或者我需要指定javascript_include_tag中的其他內容嗎?

+0

你運行軌道3它的視頻? –

+1

一個假設是這樣的,否則他不會得到資產...... – Chowlett

+0

對不起,我的意思是3.1。無論如何,肯回答了它。 :P –

回答

6

從rails 3.1開始,javascript_include_tag只會在資產管道中查找javascripts。如果您想公開/ Java腳本添加到您的資產管道,只需公共路徑添加到您的

Rails.application.config.assets.paths 

陣列,當你初始化RoR應用程序,自定義資產管道着眼於路徑。

所以,不,你沒有做錯任何事情,你使用的寶石只是過時,它是爲軌道3.0-。儘管我建議嘗試將公共文件夾中的javascripts移動到資源文件夾中,並查看它是否可行,因爲這是將javascript放入3.1應用程序的首選方式。

解決問題的另一種方法(儘管不推薦)是完全禁用資產管道,如果您不使用它的話。這是通過去除

config.assets.enabled = true 
在你的配置

/application.rb中

如果您想了解更多關於資產管道完成後,Railscasts有 http://railscasts.com/episodes/279-understanding-the-asset-pipeline