Я хочу подделать API с помощью небольшого приложения Sinatra, следуя этому методу< /а>. Это означает, что у меня есть приложение Rails, а в папке spec/support очень простое приложение Sinatra:
module FakePrograms
class Application < Sinatra::Base
get "/API/V1/programs" do
{
programs: [
...
]
}.to_json
end
end
end
Частично цель состоит в том, чтобы запустить это приложение локально, чтобы я мог работать над своим приложением Rails с поддельным API. Проблема: когда я делаю ruby spec/support/fake_programs.rb
, приложение не загружается, и я получаю
config/puma.rb:14:in `block in _load_from':
uninitialized constant
#<Class:#<Puma::DSL:0x007fac0b0e0380>>::ActiveRecord (NameError)
Похоже, Sinatra загружается с использованием моей конфигурации Rails. Мне не нужны ни ActiveRecord, ни Puma для моего поддельного API.
Я прочитал этот вопрос и другой, но они находятся в разных контексте, потому что им нужно их приложение Sinatra для обмена маршрутами с приложением Rails.
Содержимое config/puma.rb:
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'
on_worker_boot do
# Worker specific setup for Rails 4.1+
# See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
ActiveRecord::Base.establish_connection
end
Я смотрел файл config.ru, но @max прав, это не коррелировано.
config.ru
читается, если вы вызываете файл ruby напрямую сruby spec/support/fake_programs.rb
. Это действительно то, что происходит? Может быть, покажите также своиconfig.ru
иconfig/puma.rb
. - person max pleaner   schedule 04.08.2016