2

我在使用 Sass/Css 的 Rails 中遇到了一个奇怪的错误:

“1p*x 不是有效的 CSS 值。”

应用程序跟踪说它来自:

应用程序/资产/样式表/共享/form.css.scss:19

但在我的文件中,这一行是:

“输入{@include all_borders(1px,solid,red);}”

这就像在 p 和 x 之间添加一个“*”。而且,它对许多其他行也有同样的问题。而且...错误刚刚出现,我以前从未遇到过,我没有更改配置文件中的任何内容,我唯一做的就是使用捆绑更新更新我的宝石。

[编辑] Mixin 代码:

@mixin all_borders($strength: 1px, $type: solid, $color: black){
  border: $strength $type $color;
}

[结束编辑]

我也有一些“参数数量错误(4 比 1)”的问题......但是,昨天一切正常......这就像我的 scss 文件的预编译有问题......我有同样的问题试图预编译。

有人有线索吗?我不知道该怎么办...

如果它可能有帮助:我正在使用 Ruby 1.9.3、Rails 3.2.3、sass 3.1.15 和 sass-rails 3.2.5,我还发布了我的 application.rb 和 development.rb 文件:

development.rb config.cache_classes = false

config.whiny_nils = true

config.consider_all_requests_local       = true
config.action_controller.perform_caching = false

config.action_mailer.raise_delivery_errors = true

config.active_support.deprecation = :log

config.action_dispatch.best_standards_support = :builtin

config.active_record.mass_assignment_sanitizer = :strict

config.active_record.auto_explain_threshold_in_seconds = 0.5

config.assets.compress = false
config.serve_static_assets = false

config.assets.debug = true

应用程序.rb

require File.expand_path('../boot', __FILE__)

require 'rails/all'

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))
end

module MySite
  class Application < Rails::Application
    config.autoload_paths += %W(#{config.root}/lib)

    config.encoding = "utf-8"

    config.assets.enabled = true
    config.assets.initialize_on_precompile = false

    config.assets.version = '1.0'

  end
end

提前感谢您花时间帮助我。:)

4

1 回答 1

1

好的,我发现问题出在哪里了... Pfiew,这很难找到...

由于 Rails 服务器,我不得不创建一个全新的项目,逐个文件添加我损坏的项目的代码并跟踪问题的发生。

所以我发现删除这个文件: /config/initializers/custom_libraries.rb

正在解决问题。这个文件只有一行:require 'ext/string'

所以问题必须来自我的自定义字符串方法。

是的,确实如此。我在字符串类中添加了一个“to_a”(to_array)方法,因为原生 Ruby 字符串类没有这个方法。方法是:

def to_a
  return self.chars.to_a
end

所以评论这个方法解决了我的 CSS 问题。我想 sass-rails gem 或与 CSS 相关的那些已经在创建此方法并将其用于编译或其他 CSS 内容,而我的“to_a”字符串方法肯定搞砸了。但我只是猜测...

Surely the Rails errors weren't helpful at all to find this out. Does anyone know how I may have found the issue faster? Maybe a specific debug tool to recommend?

I will learn from this misadventure: never ever create your own method for a specific Ruby class with a name that is too similar with other Ruby class methods.

于 2012-04-18T07:55:22.010 回答