Подтвердить что ты не робот

Как я могу использовать единорога как "рельсы"?

В новом gimfile проекта rails отображается:

# Use unicorn as the app server
gem 'unicorn'

rails s --help показывает:

Usage: rails server [mongrel, thin, etc] [options]

Тем не менее, делая:

rails s unicorn

Я получаю:

/Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/handler.rb:63:in `require': cannot load such file -- rack/handler/unicorn (LoadError)
from /Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/handler.rb:63:in `try_require'
from /Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/handler.rb:16:in `get'
from /Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/server.rb:272:in `server'
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands/server.rb:59:in `start'
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands.rb:55:in `block in <top (required)>'
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap'
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

Я использовал единорог в прошлом в других проектах, но всегда приходилось запускать команду unicorn и указывать конфигурационный файл, который немного болит. Мне интересно, как я могу просто заставить его работать, используя "rails s"... Возможно ли это?

4b9b3361

Ответ 1

Похоже на unicorn-rails драгоценный камень, о котором упоминал @Dogbert, действительно можно использовать, чтобы сделать Unicorn обработчиком rails server.

Просто добавьте gem "unicorn-rails" (и для Rails 4.2.4, gem "rack-handlers") в Gemfile, запустите bundle install, чтобы установить драгоценный камень, затем вы можете запустить:

$ rails server unicorn

Хотя один раз unicorn-rails установлен, Unicorn должен быть сервером приложений по умолчанию, чтобы вы могли просто запустить rails server, и он должен использовать Unicorn (если вы не используете Thin или Mongrel в своем Gemfile, в в этом случае они могут конфликтовать, и вы можете удалить те, которые не используете).

Ответ 2

Лучшим вариантом может быть просто запуск сервера единорога.

bundle exec unicorn -p 3000 # default port is 8080

Ответ 3

gem 'rack-handlers'

rails server unicorn

Ответ 4

Я не думаю, что можно использовать единорога как "рельсы". Используйте это -

Добавьте gem 'unicorn' в gem файл и запустите установку пакета.

а затем запустите любую из следующих команд -

$unicorn -p 3000

или

$unicorn_rails -p 3000

Ответ 5

Однако ответ Steven является самым простым способом.

Я запускаю unicorn в среде разработки с помощью задачи рейка:

Lib/задачи/dev_unicorn.rake:

task :server do
  # optional port parameter
  port = ENV['PORT'] ? ENV['PORT'] : '3000'
  puts 'start unicorn development'
  # execute unicorn command specifically in development
  # port at 3000 if unspecified
  sh "cd #{Rails.root} && RAILS_ENV=development unicorn -p #{port}"
end
# an alias task
task :s => :server

пробег:

rake s

Ссылка http://jing.io