Rails 3.1资产管道和JS预处理

时间:2011-09-20 18:07:44

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline

我想在JavaScript中添加一些用户首选项。以前我通过控制器通过<%= javascript_link_tag ...>渲染我的JavaSript文件 preferences.js.erb 来完成它。现在如何使用3.1资产管道进行烹饪?

1 个答案:

答案 0 :(得分: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