2011-09-20 43 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