Javascript 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

我创建了一个名为gem的程序,当浏览器版本不受支持时,它会显示一个警告模式。目前,它接受一个配置哈希,您可以在其中传递每个浏览器不支持的最新版本

代码 这是我的应用程序中的初始值设定项
config/initializers/supportor.rb

   Supportator.configure({:chrome => 30, :ie => 11})
这是gem
lib/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文件的一部分,它触发gem
lib/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的预编译中,配置被忽略了。有人知道为什么会发生这种情况吗?

我知道这可能没有帮助,但我无法复制您的错误。当I
RAILS\u ENV=development bundle exec rake assets:precompile
然后
RAILS s


谢谢@user2624592,您使用的是与我相同的初始值设定项吗?是的,我是。我确实注意到,如果我更改初始值设定项中的值,则不会产生任何效果。也许初始值设定项只使用一次?