我见过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/