Javascript gem'内的配置;他的资产不起作用
我创建了一个名为gem的程序,当浏览器版本不受支持时,它会显示一个警告模式。目前,它接受一个配置哈希,您可以在其中传递每个浏览器不支持的最新版本 代码 这是我的应用程序中的初始值设定项Javascript gem'内的配置;他的资产不起作用,javascript,ruby-on-rails,ruby,gem,erb,Javascript,Ruby On Rails,Ruby,Gem,Erb,我创建了一个名为gem的程序,当浏览器版本不受支持时,它会显示一个警告模式。目前,它接受一个配置哈希,您可以在其中传递每个浏览器不支持的最新版本 代码 这是我的应用程序中的初始值设定项config/initializers/supportor.rb Supportator.configure({:chrome => 30, :ie => 11}) 这是gemlib/supportor.rb的配置文件: require "supportator/version" r
config/initializers/supportor.rb
Supportator.configure({:chrome => 30, :ie => 11})
这是gemlib/supportor.rb的配置文件:
require "supportator/version"
require "engine"
module Supportator
@config = {
:chrome => 14,
:safari => 5,
:firefox => 3,
:ie => 9,
:opera => 12
}
@valid_config_keys = @config.keys
def self.configure(opts = {})
opts.each {|k,v| @config[k.to_sym] = v if @valid_config_keys.include? k.to_sym}
end
def self.config
@config
end
end
...
if (browserName == "Chrome" && majorVersion >= <%= Supportator.config[:chrome] %>)
supported = true;
else if (browserName == "Safari" && majorVersion >= <%= Supportator.config[:safari] %>)
supported = true;
else if (browserName == "Firefox" && majorVersion >= <%= Supportator.config[:firefox] %>)
supported = true;
else if (browserName == "Microsoft Internet Explorer" && majorVersion >= <%= Supportator.config[:ie] %>)
supported = true;
else if (browserName == "Opera" && majorVersion >= <%= Supportator.config[:opera] %>)
supported = true;
else
supported = false;
....
这是js.erb文件的一部分,它触发gemlib/assets/javascripts/supportor.js.erb的模式:
require "supportator/version"
require "engine"
module Supportator
@config = {
:chrome => 14,
:safari => 5,
:firefox => 3,
:ie => 9,
:opera => 12
}
@valid_config_keys = @config.keys
def self.configure(opts = {})
opts.each {|k,v| @config[k.to_sym] = v if @valid_config_keys.include? k.to_sym}
end
def self.config
@config
end
end
...
if (browserName == "Chrome" && majorVersion >= <%= Supportator.config[:chrome] %>)
supported = true;
else if (browserName == "Safari" && majorVersion >= <%= Supportator.config[:safari] %>)
supported = true;
else if (browserName == "Firefox" && majorVersion >= <%= Supportator.config[:firefox] %>)
supported = true;
else if (browserName == "Microsoft Internet Explorer" && majorVersion >= <%= Supportator.config[:ie] %>)
supported = true;
else if (browserName == "Opera" && majorVersion >= <%= Supportator.config[:opera] %>)
supported = true;
else
supported = false;
....
但是当我在控制台中输入supportor.config[:ie]
时,结果是12
显然,在js.erb的预编译中,配置被忽略了。有人知道为什么会发生这种情况吗?我知道这可能没有帮助,但我无法复制您的错误。当IRAILS\u ENV=development bundle exec rake assets:precompile
然后RAILS s
谢谢@user2624592,您使用的是与我相同的初始值设定项吗?是的,我是。我确实注意到,如果我更改初始值设定项中的值,则不会产生任何效果。也许初始值设定项只使用一次?