2011-09-20 126 views
0

我想在JavaScript中放入一些用戶首選項。以前我通過控制器通過<%= javascript_link_tag ...>來渲染我的JavaSript文件preferences.js.erb。現在應該如何烹飪3.1資產管道?Rails 3.1資產管道和JS預處理

回答

1

絕不會。application.js是靜態的 - 在生產時,它通過rake assets:precompile命令生成一個大的靜態文件。

所以,你可以包括單獨的文件preferences.js.erb你提出或直接頁面上呈現的偏好 - 因爲你節省1個請求(但糟糕的是,因爲他們不會像緩存),第二個是更好的。 爲了最小化偏好的大小,最好將它們呈現在JSON中,如下所示:

def user_preferences 
    javascript_tag " 
    var user_settings = #{ActiveSupport::JSON.encode(current_user.settings)} 
    " 
end