Ruby on rails Rails 3.1资产管道和JS预处理

Ruby on rails Rails 3.1资产管道和JS预处理,ruby-on-rails,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails,Ruby On Rails 3.1,Asset Pipeline,我想在JavaScript中添加一些用户首选项。之前,我是通过控制器通过呈现我的JavaSript文件preferences.js.erb来完成的。现在3.1资产管道应该如何运作?绝对不是。。application.js是静态的-在生产时,它通过rake assets:precompile命令生成一个大的静态文件 因此,您可以按照您的建议包含单独的文件preferences.js.erb,或者直接在页面上呈现首选项-秒更好,因为您保存了一个请求(但更糟糕的是,它们不会被缓存)。 为了最小化首选项

我想在JavaScript中添加一些用户首选项。之前,我是通过控制器通过呈现我的JavaSript文件preferences.js.erb来完成的。现在3.1资产管道应该如何运作?

绝对不是。。application.js是静态的-在生产时,它通过
rake assets:precompile
命令生成一个大的静态文件

因此,您可以按照您的建议包含单独的文件preferences.js.erb,或者直接在页面上呈现首选项-秒更好,因为您保存了一个请求(但更糟糕的是,它们不会被缓存)。 为了最小化首选项的大小,最好用JSON表示它们,如下所示:

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