Лучший способ обмена данными между Javascript и Sass в Rails?

#javascript #css #ruby-on-rails #ruby #sass

#javascript #css #ruby-on-rails #ruby #sass

Вопрос:

Каков наилучший способ обмена данными между Javascript и Sass?

Я вижу два варианта:

1) Используйте что-то вроде sass-json-vars , чтобы иметь возможность передавать @import файлы JSON в Sass, а затем просто импортировать JSON в Javascript.

2) Используйте .css.scss.erb файлы конвейера ресурсов Rails, и в этот файл CSS импортируйте JSON с помощью json Ruby gem, затем просто импортируйте JSON в Javascript.

Один лучше другого? Есть ли еще лучший вариант?

Ответ №1:

Я не совсем уверен, что понимаю, какими данными вы хотите поделиться, или почему это было бы необходимо. Рассматривали ли вы возможность простой установки динамических свойств с помощью встроенного CSS в ваших представлениях?

Допустим, у вас есть куча статей на странице, и каждая статья имеет динамический цвет фона, который задан в базе данных, я думаю, что лучше всего было бы создать свой класс article с разумным фоном по умолчанию в SASS, а затем переопределить его в ваших представлениях erb следующим образом:

SASS

 .article {
  background-color: #ddd;
}
 

ERB

 <% @articles.each do |article| %>
  <article class="article" style="background-color: <%= article.background_colour %>">
    <%= article.title %>
  </article>
<% end %>