Как мне создать файл 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!

Другие вопросы по тегам