Rails 3.1 Активирует конвейер и предварительную обработку JS - PullRequest
0 голосов
/ 20 сентября 2011

Я хочу добавить некоторые пользовательские настройки в мой JavaScript. Ранее я делал это путем рендеринга моего файла JavaSript preferences.js.erb контроллером через <% = javascript_link_tag ...>. Как его нужно готовить сейчас с конвейером 3.1 Актив?

1 Ответ

1 голос
/ 21 сентября 2011

Ни в коем случае .. 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
...