ruby-on-rails - `<module:Rails>' : superclass mismatch for class Server (TypeError)

标签 ruby-on-rails

我见过this和其他几个问题,但他们的问题与我的不同。

我已将以下代码添加到 config/boot.rb , 在端口 8081 上运行我的服务器

module Rails
  class Server
    def default_options
      super.merge({Port: 8081})
    end
  end
end

然后我尝试运行 rails s ,我面临这个错误:
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/server.rb:7:in `<module:Rails>': superclass mismatch for class Server (TypeError)
        from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/server.rb:6:in `<top (required)>'

最佳答案

做你想做的更好的方法:

require 'rails/commands/server'

module DefaultOptions
  def default_options
    super.merge!(Port: 8081)
  end
end

Rails::Server.prepend(DefaultOptions)

错误消息的原因是因为您试图重新定义 Rails::Server类并改变它的继承结构。 Rails::Server继承自 ::Rack::Server ,但是您的代码试图说它不再存在。因此,您会收到父类(super class)不匹配错误。

关于ruby-on-rails - `<module:Rails>' : superclass mismatch for class Server (TypeError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852309/

相关文章:

ruby-on-rails - Ruby on Rails 的使用

ruby-on-rails - 删除注释结果为未定义方法 `comment_path' ?

ruby-on-rails - 如何设置当前用户id只能使用自己的操作

ruby-on-rails - 如何在 RSpec 测试中打开 ActiveRecord 的 SQL 调试日志记录?

ruby-on-rails - 如何在 Rails 6 站点中实现 plyr.js?

ruby-on-rails - 尝试使用 https 时乘客崩溃

ruby-on-rails - ActiveStorage 是否可以创建用于直接上传的 blob 并在上传完成之前将其附加到模型?

ruby-on-rails - 在我的 rspec 中为 #<RSpec::ExampleGroups 获取未定义的方法 `get'

ruby-on-rails - Rails - 在模型中查找具有特定值的条目的有效方法

ruby-on-rails - 由于 Selenium 参数错误,Watir 浏览器初始化失败