我正在尝试在编译期间将一些值从Rails(3.2.12)传递到SASS(3.2.7)文件。我试图在SO上关注SASS docs和其他一些answers。看起来它应该非常简单,但我没有设法克服这个错误:
undefined method `gsub' for nil:NilClass
(in /home/joegatt/Sites/joegatt.net/v3/joegattnet_v3/app/assets/stylesheets/application.css.sass)
我的设置是:
#/config/application.rb
if config.respond_to?(:sass)
require "#{config.root}/lib/sass.rb"
end
#/lib/sass.rb
module Sass::Script::Functions
def styling(string, opts = {} )
assert_type string, :String
Sass::Script::String.new( '#ff0000' )
end
declare :styling, :args => [:string]
end
#/assets/stylesheets/default.css.scss
background-color: styling('test')
答案 0 :(得分:2)
通过执行以下操作,我设法让它工作:
#/lib/sass.rb
module Sass::Script::Functions
def settings_styling(setting)
assert_type setting, :String
Sass::Script::Parser.parse('#ff0000', 0, 0)
end
declare :settings_styling, args: [:setting]
end
不同之处在于,我使用Sass :: Script :: Parser.parse而不是使用Sass :: Script :: String.new,而不是字符串,而是返回“tree of Script::Nodes”。有更好的想法吗?