Я новичок в ruby, изучаю Sinatra. При создании сайта Sinatra, требующем 'sinatra'
и настройке маршрутов непосредственно под ним, довольно просто и довольно хорошо документировано создание приложения, требуя 'sinatra / base'
и написания класс, наследуемый от Sinatra :: Base
, хотя и относительно простой, но очень плохо документирован (возможно, потому, что это довольно недавняя функция Sinatra).
И именно это я делаю. У меня нет особых проблем с частью Sinatra, однако у меня есть небольшие проблемы с частью стойки / тонкого / сервера. Очевидно, есть два способа развернуть приложение: с помощью самой Sinatra (с помощью метода run!
) и с использованием файла для установки в стойку (обычно config.ru
).
Использование Sinatra запустить!
чрезвычайно интуитивно понятен и работает как шарм, но, очевидно, он не работает, если я хочу развернуть свое приложение на 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 / the sever через приложение Sinatra при использовании файла Rackup? Или параметры в вопросах следует передавать непосредственно в rackup / thin / the sever через параметры командной строки?
В качестве ссылки на проблему, вот небольшое приложение Sinatra, которое я создаю: https: // github .com / AzizLight / Wiki /