Skip to main content
 首页 » 编程设计

ruby-on-rails之在 rails 应用程序中安装 Sinatra 应用程序并共享布局

2024年12月31日11zhwl

我想在我的 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
  • 使用另一个目录来查找 View 和布局而不是默认的 ./views
  • 使用另一个模板文件作为默认布局。

  • 两者都可以通过在您的 sinatra 应用程序中设置以下内容来实现:
    set :views, "/path/to/your/railsapp/views" 
    set :erb, layout => :"layout/application" # or whatever rendering engine you chose