Przepraszam, jeśli jest to pytanie typu RTFM, ale wciąż jestem nowy w stosunku do rails/ruby / bundler i jestem trochę zdezorientowany.Pakiet szyn tylko instaluje produkcję
W naszym pliku config/application.rb
tam ten segment Bundler:
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
iw naszych Gemfile
używamy różnych grup, na przykład
group :development, :test do
gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
gem 'shoulda-matchers'
gem 'watchr'
gem 'spork', '~> 1.0rc'
gem 'spectator'
gem 'debugger'
gem 'wirble'
end
Ale kiedy biegnę RAILS_ENV=production bundle install
(lub bundle install --deployment
), to nadal instaluje perełki z grupy rozwój/test ...
Dlaczego tak się dzieje i jak mogę to działa prawidłowo?
Wiem o "- bez", ale wydaje się bardzo elegancki, szczególnie biorąc pod uwagę te dyrektywy konfiguracyjne w 'config/application.rb' (które mają adresować dokładnie to), a także biorąc pod uwagę ten cytat: [Railsy 3 pochodzi z zapiekaną podpórką.] (Http://gembundler.com/rails3.html) – gingerlime
Polecenie instalacji pakietu jest całkowicie niezależne od Rails. Po prostu zagląda do twojego Gemfile'a, nie obchodzi go, jakie biblioteki faktycznie wymaga twoja aplikacja we wspomnianej konfiguracji. W rzeczywistości można pominąć Bundler.require i wymagać bibliotek ręcznie z dowolnej grupy. Zgadzam się, że Rails mógłby lepiej zintegrować się w tym przypadku z Bundlerem, ale tak nie jest. –
Rozumiem. Sądzę więc, że można powiedzieć, że szyny wiedzą o bundlerach (np. W 'config/application.rb' oraz również' config/boot.rb'), ale bundler nie wie nic o szynach ... Czyta tylko Gemfile i nie używa żadnego z tych plików szyn. Myślę, że moneta w końcu spadła. Dzięki za pomoc! – gingerlime