Ruby Sinatra:使用来自其他文件的路由
我目前正在使用Rack和Sinatra构建一个Ruby应用程序,但在使用routes时失败了,routes是在主应用程序文件之外实现的。我的第一次尝试是这样的: 在主文件中:Ruby Sinatra:使用来自其他文件的路由,ruby,routes,sinatra,rack,Ruby,Routes,Sinatra,Rack,我目前正在使用Rack和Sinatra构建一个Ruby应用程序,但在使用routes时失败了,routes是在主应用程序文件之外实现的。我的第一次尝试是这样的: 在主文件中: require 'sinatra' require 'lib/web' module NoCI class Main < Sinatra::Base include NoCI::Web load 'lib/web.rb' end end 但它没有起作用。然后我读到了关于将路线放入我的主课的
require 'sinatra'
require 'lib/web'
module NoCI
class Main < Sinatra::Base
include NoCI::Web
load 'lib/web.rb'
end
end
但它没有起作用。然后我读到了关于将路线放入我的主课的一个子类的内容。也没有成功。有什么提示吗,我遗漏了什么
更新:我尝试了'require'、'include'和'load',混合了所有可能的组合,对我来说没有任何效果。你可以使用
include
钩子来实现你想要的
require 'sinatra'
require 'lib/web'
module NoCI
class Main < Sinatra::Base
include NoCI::Web
end
end
当您包含此模块时,
included
中的代码将执行,NoCI::Base
作为Base
,您可以使用included
钩子实现您想要的功能
require 'sinatra'
require 'lib/web'
module NoCI
class Main < Sinatra::Base
include NoCI::Web
end
end
当您包含此模块时,
included
中的代码将执行,NoCI::Base
asBase
非常有效,非常感谢!很有魅力,非常感谢!我认为给出的答案是一个(无论多么好)解决办法。我相信真正的答案是找到的答案。为什么我现在将这个问题标记为重复。我认为给出的答案是一个(无论多么好)解决方法。我相信真正的答案是找到的答案。为什么我现在将这个问题标记为重复。
module NoCI
module Web
def self.included(base)
base.get '/' do
'Hello World!'
end
end
end
end