2012-10-15 53 views
6

我有一個Rails 3應用程序,我試圖用我的數據庫(少於300個國家)中的每個Nation填充一個JavaScript變量作爲JSON對象。這是我nations.js.erb文件中的相關行:預編譯時從js.erb文件訪問模型

_this.nations = <%= Nation.all.to_json :only => [:id], :methods => :text %>; 

當我打電話給我的js文件在瀏覽器中,/assets/users.js這確實一個需要國家的文件時,_this.nations變量是完全填充。當我嘗試做一個預編譯,我得到以下幾點:

$> rake assets:precompile 
$> rake aborted! 
uninitialized constant Nation (in nations.js.erb) 

所以我的問題是:是否有可能引用Nation模型,或任何模型,從js.erb文件中的預編譯?我也嘗試使用我的NationsHelper,但我的錯誤只是改變爲未初始化的常量NationsHelper。

我對RoR相當陌生,所以如果我還沒有提供相關信息,請直接詢問。

回答

7

如果你有config.assets.initialize_on_precompile設置爲false地方,那麼請嘗試啓用它

config.assets.initialize_on_precompile = true 
+0

修復它,非常感謝您的幫助。 –

+0

這令人驚訝地不*影響Heroku的intialize_on_precompile問題。 – Trip

0

你爲什麼不撥打電話的控制器

控制器

@nations = Nation.all 

nations.js。 erb

_this.nations = <%= @nations.all.to_json :only => [:id], :methods => :text %>;