我想在我的 rails 应用程序中安装一个 sinatra 应用程序。
但我希望这个共享相同的布局。
iframe 可以工作,但你有其他想法吗?
谢谢
请您参考如下方法:
你基本上需要做两件事:
您需要告诉 Rails 路由器某个 URL 路径将由另一个 Rack 应用程序(在您的情况下是 Sinata 应用程序)处理。这可以通过将它添加到你的 routes.rb 来完成:
match "/sinatra" => MySinatraApp, :anchor => false
完成后,您可以像这样创建您的应用程序:
class MySinatraApp < Sinatra::Base
get "/" do
"Hello Sinatra World"
end
end
现在的第二步是告诉您的 Sinatra 应用程序使用默认情况下位于
app/views/layouts/application.html.erb
中的 rails 布局。对于 Rails 3.1。默认情况下,Sinatra 使用
./views/layout.ext
(
ext
是您选择的模板系统的扩展)。所以你基本上必须告诉 Sinatra
./views
两者都可以通过在您的 sinatra 应用程序中设置以下内容来实现:
set :views, "/path/to/your/railsapp/views"
set :erb, layout => :"layout/application" # or whatever rendering engine you chose