Rails Sass自定义方法无法运行

时间:2018-09-17 19:47:18

标签: ruby-on-rails sass ruby-on-rails-4.2 sass-rails

由于某些原因,sass没有运行我的自定义功能。环境变量已定义并可以正常工作,就像我在应用程序中使用它的其他Ruby代码一样。我只是不知道为什么SASS没有运行该功能。感谢您的帮助。

在application.rb文件中有一个自定义sass方法:

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 个答案:

答案 0 :(得分:0)

我知道了。我的application.yml文件显示THE_ENV: xyz。红宝石代码正在寻找"xyz",包括引号。我从sass ruby​​ if / else语句中删除了引号,并且它起作用了。看起来像:

$primary_color: #d71f2b
@if get_env() == xyz
  $primary_color: #39A163
@else
  $primary_color: #d71f2b