Я новичок в рубине, изучаю Синатру.Хотя создание сайта Sinatra с использованием 'sinatra'
и настройка маршрутов непосредственно под ним довольно легко и довольно хорошо документировано, создание приложения с использованием 'sinatra/base'
и написание класса, который наследуется от 'Sinatra::Base
', хотя все еще относительно прост,очень плохо документирован (возможно, потому что это довольно недавняя особенность Синатры).
И это именно то, что я делаю.У меня не слишком много проблем со стороны Sinatra, однако у меня есть проблемы со стойкой / thin / server.По-видимому, существует два способа развертывания приложения: использование самого Sinatra (с использованием метода run!
) и использование файла рэпа (обычно config.ru
).
Использование метода Sinatra run!
чрезвычайно интуитивно понятно и работаеткак очарование, но, видимо, это не сработает, если я захочу развернуть свое приложение на heroku.На самом деле, почти все приложения Sinatra, с которыми я столкнулся на GitHub, используют файл config.ru
.
Использование файла рейка может быть одинаково интуитивно понятным, но я не могу понять, как передатьопции из приложения Sinatra на сервер (ir: порт).Я попытался объединить параметры в массив параметров по умолчанию для стойки:
MyApp::App.default_options.merge!(
:run => false,
:env => :production,
:port => 4567
)
run MyApp::App
, добавив параметры непосредственно в приложение:
MyApp::App.set :port, 4567
MyApp::App.set :run, false
MyApp::App.set :env, :production
run MyApp::App
, установив параметры из класса приложения:
module MyApp
class App < Sinatra::Base
set :port, 4567
set :run, false
set :env, :production
# ...
# config.ru
require 'app'
run MyApp::App
Не удалось выполнить все вышеперечисленные методы: либо показывать сообщения об ошибках, либо просто не принимать во внимание ни один из параметров.Так есть ли способ передать параметры в rackup / thin / theverver через приложение Sinatra при использовании файла rackup?Или параметры в вопросах должны быть переданы напрямую в rackup / thin / theverver через параметры командной строки?
В качестве ссылки на проблему, вот небольшое приложение Sinatra, которое я создаю: https://github.com/AzizLight/Wiki/