[英]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應用程序。
總而言之,我會:
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.