我正在制作模块化应用程序:
main.rb的
require "sinatra/namespace"
require "haml"
Dir.glob("servers/*/server.rb").each do |server|
require_relative server
end
我想做内联模板:
服务器/一些/ server.rb
namespace "/some/hello" do
get "/" do
haml :index
end
end
__END__
@@ index
!!!
%html
hello
但我得到了:
没有这样的文件或目录 - views / index.haml
如果我将模板移动到main.rb,它会工作,但它有点不再模块化了。
答案 0 :(得分:0)
在另一种情况下有同样的错误:
main.rb的
require_relative "server_common"
get / do
haml :index
end
__END__
@@ index
!!!
.....
server_common.rb
require "sinatra"
.....
<强>解决方案:强>
require "sinatra"
set :inline_templates, caller.first[/[^:]+/]
还必须加上这个,因为Sinatra没有自动运行。
set :app_file, caller.first[/[^:]+/]