簡體   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