почти в каждой синатре, который я видел, несмотря на то, что он делает, он всегда имеет следующие две линии:
require 'rubygems'
require 'bundler/setup'
в Большинство примеров, удаление требуемого «Bundler / Setup», похоже, не оказывают нарушайте эффект, поэтому я путаю в замешательстве, когда / где мне нужно включить это.
Я ненавижу используя вещи, не зная, что именно причина того, чтобы она была там, поэтому я надеялся, что кто-то может объяснить, почему мне нужны обе линии, и что они делают?
Существует практическое объяснение:
Допустим, мы хотим использовать гем pristine_text из мастер-ветви github
Gemfile:
gem "pristine_text", github: "nurettin/pristine_text"
main.rb : (неправильно)
require "pristine_text"
# error, can't find pristine_text
require не может найти его, потому что драгоценный камень не находится в пути, который может увидеть ruby. Если вы посмотрите на фактический путь драгоценного камня, вы увидите, что он находится под
/pristine-text-some_commit_id
main.rb: (справа)
require "bundler/setup"
require "pristine_text"
# no error
ошибка исчезла, потому что теперь вы загружаете компоновщик с путями загрузки ваших зависимостей.