假设我有一个可挂载的 Rails 引擎,将其作为独立应用程序(不是任何其他应用程序的一部分)挂载到特定端点的最小配置是什么?
这最好只是一个简单的 Rack 应用程序,这样我就可以选择合适的 Web 服务器(unicorn、puma 等)。
最佳答案
由于您没有提供要使用的特定 Rails 引擎,我将创建一个示例引擎。
$ rails plugin new blorgh --mountable
$ cd blorgh
现在,由于 Rails 引擎是一个 Rack 应用程序并且可以独立运行。您只需要添加一个包含以下内容的 config.ru
文件:
# This file is used by Rack-based servers to start the application.
require 'rubygems'
require 'bundler'
require 'rails'
Bundler.require(:default)
run Blorgh::Engine
有了它,您就拥有了无需任何额外应用程序即可独立运行的 Rails 引擎。下面是如何运行它
$ bundle exec rackup config.ru
[2015-11-16 09:43:26] INFO WEBrick 1.3.1
[2015-11-16 09:43:26] INFO ruby 2.2.3 (2015-08-18) [x86_64-darwin14]
[2015-11-16 09:43:26] INFO WEBrick::HTTPServer#start: pid=38105 port=9292
现在打开它,转到 localhost:9292。你会得到一个 404 not found,这是有道理的,因为这个引擎没有路线。但您可以轻松添加。
此外,这也可以部署到 Heroku 等托管服务提供商。他们将检测 config.ru
文件,其他配置将自动发生。
如果这回答了您的问题,请告诉我。
关于ruby-on-rails - 独立运行 Rails Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33726240/