1

コンパイル時に Rails (3.2.12) から SASS (3.2.7) ファイルにいくつかの値を渡そうとしています。私はSASSのドキュメントとSOに関する他のいくつかの回答に従おうとしました。それは非常に簡単なはずですが、私はこのエラーを乗り越えることができませんでした:

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')
4

1 に答える 1

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::String.new を使用する代わりに、Sass::Script::Parser.parse を使用して、文字列の代わりに「Script::Nodes のツリー」が返されることです。より良いアイデアはありますか?

于 2013-06-25T08:24:05.240 に答える