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