Я думаю, что лучший способ - сохранить файл сценария на стороне сервера, поэтому вы можете легко изменить свой сценарий в зависимости от параметров базы данных пользователя
, например:
разместить новый маршрутв файле routs.rb
post '/users/modify_style', :to => 'users#modify_style', :as => modify_style
затем разрешите маршруту отвечать пользователю с помощью файла JavaScript, например, если пользователю необходимо изменить основной цвет шаблона HTML с помощью кнопки или ссылки;поэтому кнопка формы в шаблоне может выглядеть так:
<%= button_to 'apply style', modify_style_path, :data => {:user_id => current_user.id}, :remote => true %>
или
<%= link_to 'apply style', modify_style_path(:user_id => current_user.id), :method => :post, :remote => true %>
, поэтому опция remote: true
позволит отправлять данные на сервер через AJAX без обновления страницы.
at users_controller.rb
def modify_style
user = User.find(params[:user_id])
@main_color = user.main_color
respond_to do |format|
format.js { render 'some_file.js.erb' }
end
end
и в вашем файле js:
$('#some_element_id_to_change_color_for').css('color', '<%= @main_color %>')
или вы можете добавить код действия modify_style
непосредственно к исходному действию, которое загружаетВаша страница будет соответствовать пользовательскому стилю после загрузки страницы.