【问题标题】:How can I use a "side sinatra app" when deploying? [duplicate]部署时如何使用“side sinatra 应用程序”? [复制]
【发布时间】:2015-09-14 22:44:46
【问题描述】:

我有一个普通的 Rails 应用程序,它现在可以获取一些在 Sinatra 应用程序中呈现的小部件。

在我的本地机器上,我运行 rails sruby lib/sinatra/widget.rb,然后从 rails 应用程序获取内容。因此localhost:3000localhost:4567 可以很好地协同工作。

如何在暂存环境中完成所有这些工作?部署本身正在运行,并且 rails 应用程序启动。我现在如何访问 Sinatra 的内容?

一个想法是将 Sinatra 应用程序安装到 rails 应用程序中的某个路径?有什么想法、建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 sinatra


    【解决方案1】:

    Here 是来自 Thoughtbot 的一篇文章,它展示了如何在 Rails 应用程序中使用 Sinatra 应用程序的两种方法。

    更简单的方法是使用Rails路由器:

    require 'my_sinatra_app'
    
    MyRailsApp::Application.routes.draw do
      mount MySinatraApp.new => '/sinatra'
    end
    

    除非您需要为每个应用程序自定义中间件,否则这是一种更可取的方法。

    【讨论】:

    • 这就是我认为的解决方案,所以我会继续这样做。谢谢!
    • 如果我收到uninitialized constant MySinatraApp (NameError),会缺少什么?我是这样命名的:class MySinatraApp < Sinatra::Base
    • 这是我的 routes.rb: mount MySinatraApp.new => '/sinatra'
    • @Cojones 你在你的routes.rb 中需要它吗?我已经更新了lib/my_sinatra_app.rb中文件的答案
    • 要求解决它,但将其放入自动加载路径。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2011-09-17
    • 2012-04-11
    相关资源
    最近更新 更多