Пользовательский метод Rails Sass не запускается
По какой-то причине sass не выполняет мою пользовательскую функцию. Переменная окружения определена и работает так, как у меня есть другой код ruby, который использует его в приложении. Я просто не могу понять, почему SASS не выполняет эту функцию. Я ценю вашу помощь.
У меня есть собственный метод sass, расположенный в файле application.rb:
module Sass::Script::Functions
def get_env
Sass::Script::String.new(ENV['THE_ENV'])
end
declare :get_env, args: []
end
THE_ENV
Переменная среды определяется в файле application.yml.
В моем файле application.sass у меня есть следующее, это всегда настройка # d71f2b:
$primary_color: #d71f2b
@if get_env() == "xyz"
$primary_color: #39A163
@else
$primary_color: #d71f2b
Gemfile.lock содержит:
sass (3.4.22)
sass-rails (5.0.4)
railties (>= 4.0.0, < 5.0)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
1 ответ
Я понял. Мой файл application.yml показывает THE_ENV: xyz
, Sass Рубиновый код ищет "xyz"
в том числе цитаты. Я удалил кавычки из инструкции sass ruby if/else, и это сработало. Так это выглядит так:
$primary_color: #d71f2b
@if get_env() == xyz
$primary_color: #39A163
@else
$primary_color: #d71f2b