【发布时间】:2012-01-31 04:48:25
【问题描述】:
我正在尝试根据以下建议扩展 Sass:Script::Functions 模块:https://gist.github.com/481261/dd07a52829886ab1ad0875a8895f0100c4b925ab。问题是,我应该在哪里放置 sass-hex.rb 文件,我是否必须做任何事情来“加载”模块扩展?我尝试将文件放在 config/ 中,但似乎没有加载。当我进入 Rails 控制台并输入 Sass::Script::Functions::hex 时,我得到:“NoMethodError: undefined method `hex' for Sass::Script::Functions:Module”。
我是 Rails 新手,所以答案可能非常明显和微不足道。也许这就是为什么所有讨论扩展 Sass::Script::Functions 的网站都没有提到如何将扩展实际连接到代码中的原因。这是官方文档,但在这方面也没有帮助:http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions。
更新:
所以,我将方法的定义从“def hex ...”更改为“def self.hex ...”,现在 Sass::Script::Functions.hex 可以工作了。我仍然觉得我错过了一些东西,就像没有人建议的那样“自我”。需要...还是我在上面的示例中错误地调用了该方法?
另外,问题是“hex”方法根本没有从我使用它的 CSS 文件中调用。
最后更新:
解决方案是实际执行我最初所做的:将代码放在 config/ 目录中(在我的例子中,在 compass.rb 文件中)。
我被卡住并认为它对我不起作用的原因有两个:
- Sass::Script::Functions::hex 无法从控制台调用...不知道为什么,但我错误地假设如果我正确安装了东西,我将能够以这种方式对其进行测试.
- 由于我来回尝试了一堆东西,我可能从来没有正确的组合在 config/compass.rb 文件中使用 hex 函数,从 .css 文件中调用它,并重新启动 rails 服务器.
真是浪费时间 - 我希望这可以帮助其他人避免它......
【问题讨论】:
标签: ruby-on-rails sass compass-sass