Как я могу использовать единорога как "рельсы"?
В новом 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"... Возможно ли это?
Ответы
Ответ 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