Как мне создать файл config.ru и Rakefile?
Я знаю, что вы создаете Gemfile из командной строки, набирая "bundle init". Но как создать файл config.ru и Rakefile?
1 ответ
Кристин, реальный вопрос не в том, как, а в том, почему ты хочешь их создать.
Эти три файла служат трем различным целям, и ни один из них не требуется для запуска приложения Ruby:
Gemfile (и его сопутствующий Gemfile.lock, генерируемый первым
bundle install
и должен храниться так же безопасно, как и другой) - это тот, который вы встречаете чаще всего.Он принадлежит и используется инструментом под названием Bundler. Это инструмент управления зависимостями. Когда вашему приложению нужна какая-то другая библиотека под названием "gem", вы можете перечислить ее в своем
Gemfile
, делатьbundle install
и позже, когда вы запустите свое приложение, какbundle exec ruby yourapp.rb
Bundler позаботится об окружающей среде таким образом, чтобы ваше приложение всегда получало те же версии гемов, которые вы разработали для него (эти версии на самом деле хранятся вGemfile.lock
файл, вы можете посмотреть там).Вы можете легко обойтись без Bundler, но обычно имеет смысл придерживаться определенных версий гемов. Вот почему люди обычно используют это. Я настоятельно рекомендую вам взглянуть на сайт инструмента.
config.ru - это очень часто встречается для веб-приложений. Это файл конфигурации стойки. В мире Ruby API широко используется API-интерфейс Rack. Он позволяет отделить веб-приложения (например, приложение Rails или приложение Sinatra) от базового сервера веб-приложений (например, Thin, Unicorn или WEBrick).
Хотя вы, безусловно, можете создать это самостоятельно, вам, безусловно, не нужно. Мой опыт работы с Ruby/Rails прошел долгий путь, прежде чем мне пришлось это делать. Обычно этот файл загружается при создании нового приложения Rails путем вызова
rails new
,И ванильным приложениям Ruby командной строки просто это не нужно.
Rakefile - это, опять же, довольно распространенный зверь. Какие
Makefile
дляmake
,Rakefile
дляrake
, Rake - это инструмент Ruby для описания и вызова определенных задач из командной строки. Например, когда вы делаетеbundle exec rake db:migrate
вы фактически запускаете задачу, описанную в Rakefile.Вы можете легко создавать свои собственные задачи, но когда вы начинаете использовать Rails, вам обычно это не нужно.
rails new
для вас отбрасывает Rakefile, которого достаточно для начала, и, если вы не делаете что-то по-настоящему нестандартное (например, это должно включать вызов кода вашего Rails-приложения из командной строки), вам не нужно возиться с ним.Излишне говорить, что если вы создаете какое-то простое консольное приложение Ruby, которое просто спрашивает ваше имя и приветствует вас, этот файл вам тоже не нужен.
Надеюсь, это поможет вам разобраться в этом и сгладит вашу поездку в мир Rails!