繁体   English   中英

如何将独立的Rack应用程序安装到Ruby On Rails应用程序中?

[英]How do I mount a standalone Rack app into a Ruby On Rails app?

我有一个正在运行的Rails应用程序。 然后,我有一个小脚本,我想挂载到Rails应用程序 - 这是脚本

require 'as2'
require 'rack'

As2.configure do |conf|
  ...
end

handler = As2::Server.new do |filename, body|
  ...
end

MyBuilder = Rack::Builder.new do
  use Rack::CommonLogger
  map '/as2' do
    run handler
  end
end

puts "As2 version: #{As2::VERSION}"

我正在研究如何将Rack应用程序安装到Rails应用程序,我应该这样做:

MyRailsApp::Application.routes.draw do
  mount MySinatraApp.new => '/api'
end

然而,我挣扎的是什么 - Rack应用程序的识别器(ID)是什么? 如何设置它以及如何连接这两个应用程序并将它们成功安装在一起?

先感谢您。

编辑:当我将文件(我上面发布的片段)放在/lib文件夹中时 - 文件的名称为as2_server.rb以及我放置以下内容的路径:

Rails.application.routes.draw do
  ...
  mount MyBuilder.new => '/as2'
end

我收到以下错误:

uninitialized constant MyBuilder (NameError)

我应该如何(在哪里)正确注册MyBuilder机架应用程序?

我认为你唯一缺少的是要求你的Rack应用程序。

总而言之,我会:

  • 把你的脚本放在lib / my_builder.rb中
  • create config / initializers / my_builder.rb
  • require Rails.root.join('lib/my_builder')到新的初始值设定项中
  • 使用mount MyBuilder, at: "/my_builder" config / routes.rb中的mount MyBuilder, at: "/my_builder"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM