Какая польза от Gemfile в рельсах?

Какая польза от Gemfile в рельсах?

Как пользоваться Gemfile?

5 ответов

Решение

Во время вашей разработки в Rails будут моменты, когда вы захотите предоставить некоторую функциональность, которая вам необходима, но либо вы не знаете, как это сделать, либо не хотите реализовывать ее самостоятельно, так как многие работа была вложена в ее развитие талантливыми разработчиками.

Эти разработки, которые могут вам понадобиться (аутентификация пользователей, система сообщений, обработчики ресурсов, геолокация, система разбивки на страницы, ссылки на внешние сервисы, такие как Amazon AWS и, наконец, сам по себе Rails), называются Ruby Gems. Это пакеты программного обеспечения ruby, не обязательно относящиеся к Rails, но поскольку Rails основан на Ruby, 98% гемов может быть сделано доступным для кода вашего веб-приложения на Rails.

В github можно найти много драгоценных камней, но его интереснее искать драгоценные камни через ruby-gems или https://www.ruby-toolbox.com/

Ваш gemfile список всех драгоценных камней, которые вы хотите включить в проект. Он используется вместе с bundler (также является самоцветом) для установки, обновления, удаления и иного управления использованными самоцветами.

gemfile имеет другую цель - вы можете группировать драгоценные камни в :development, :test, :assets, :productionГруппы etc и Rails будут знать, когда включать гемы. Например:

group :development, :test do
    gem "rspec-rails"
    gem "factory_girl_rails"
    gem "guard-rspec"
end

Обратите внимание, что на Rails 4 assets группа устарела

Эти драгоценные камни относятся к среде разработки и тестовой среде, поскольку они предназначены для тестирования приложения. Они вам не нужны в производственной среде (вы могли бы, но это излишне раздувает память).

Итак, чтобы использовать gemfileпросто напишите камень, который вы хотите установить, например:

gem 'devise'

не забудьте установить bundler заранее (в вашей консоли /cmd/ssh) с

$ gem install bundler

а потом пишешь в консоль

bundle install

вы заметите еще один gemfile! Gemfile.lock Этот файл, как вы увидите, если открыть его с помощью программы чтения текста, перечисляет все ваши драгоценные камни с их версией и их зависимостями. Это пригодится, когда вам нужно узнать, какие версии драгоценных камней вы установили.

Для получения дополнительной информации о Gemfile - читайте на странице упаковщика

для получения информации о выборе драгоценного камня, вы можете начать с этого

Удачи и приятного времяпровождения!


Итак, что же это за Gemfile.lock, который был создан?

Gemfile.lock, как следует из названия, является блокировкой для всех версий всех драгоценных камней, которые были установлены. Так что, если Gemfile - это то, что требуется для установки, файл блокировки - это то, что было установлено, и какая версия фактически необходима для запуска приложения.

Если у вас нет драгоценных камней в этой конкретной версии (как указано в Gemfile.lock), rails будет жаловаться, и вам придется либо установить недостающие камни (через bundle install) или исправить любые конфликты вручную (я думаю, что упаковщик даст вам некоторые подсказки)

Что нужно знать оGemfile.lock

  • если вы случайно удалите его, он будет восстановлен при запуске bundle install, Если вы случайно удалили Gemfile, вам не повезло.. Вы должны использовать git:)
  • Heroku не заботится о Gemfile.lock, поскольку он переустанавливает все драгоценные камни. Поэтому для Heroku вы должны установить нужную версию гема, иначе Heroku всегда установит последнюю версию гема, что может вызвать проблемы
  • Сохраните Gemfile.lock в своем проекте, чтобы вы всегда знали, какая версия гемов обеспечивает правильную работу вашего приложения.

GemfileЭто конфигурация для Bundler, которая используется для управления Ruby-зависимостями вашего приложения. Этот веб-сайт включает в себя много документации, включая страницу руководства Gemfile.

Я постараюсь дать простой ответ

Объяснение по аналогии

Предположим, вы хотите сделать машину. С нуля. Теперь это будет кошмар. Вам необходимо построить: шасси, двигатель, корроборатор, радиатор, охлаждение, вентиляцию и т. Д. И т. Д. И т. Д.

Драгоценные камни позволяют использовать автомобильные детали, которые раньше делали другие люди.

Но ты не единственный, кто строит машину. Каждый, кто когда-либо строил автомобиль, в основном делал одно и то же. Были умные люди, которые ходили туда и делали двигатели внутреннего сгорания и т.д. задолго до того, как вы........... на самом деле не обращали внимания.

Вам не нужно изобретать велосипед. Зачем делать свое, если вы можете просто получить лучшее оборудование прямо с полки? Что если бы вы могли получить один из лучших двигателей, созданный самыми талантливыми инженерами в мире, не поднимая палец? Ты собираешься провести год, пытаясь сделать свой собственный?

Поэтому, в основном, вместо того, чтобы делать все самостоятельно, вы записываете список покупок всех необходимых вам деталей. И это в основном gem-файл:

  • Rolls Royce Engine
  • Ремни безопасности AutoLive
  • Шины Michellin.
  • PIAA Ночные фары
  • и т. д.

Это мой друг, в основном твой драгоценный файл!

Ваша система может иметь много драгоценных камней... таким образом, может иметь несколько версий одного и того же gem,

Gemfile указывает список gems с их versions это должно быть использовано / загружено /(установлено, если оно отсутствует) всякий раз, когда вы запускаете приложение rails. или что-нибудь с bundle exec . .

Во-первых, что такое драгоценный камень?

Согласно Википедии:

RubyGems - это менеджер пакетов для языка программирования Ruby, который обеспечивает стандартный формат для распространения программ и библиотек Ruby

Gemfile

Gemfile - это файл, который мы создаем и который используется для описания зависимостей gem для программ на Ruby.

Теперь, в очень очень простых словах:

Gem можно рассматривать как библиотеку, которую вы можете использовать в своем коде. Пример: фейкер драгоценный камень

Ваш код может использовать функциональность faker драгоценный камень, чтобы произвести поддельные данные.

Теперь вы можете перечислить все драгоценные камни, которые требуются вашему проекту в файле gemfile. Когда вы выполняете установку комплекта, все гемы в вашем гемфайле устанавливаются для вас.

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