Что такое использование Gemfile в rails?

зачем Gemfile в Rails?

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

5 ответов


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

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

много драгоценных камней можно найти в github, но его funner для поиска драгоценных камней через Рубин-драгоценные камни или ruby-toolbox

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

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

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 - читайте на странице bundler

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

удачи и получайте удовольствие!


ок, так что это Gemfile.замок, который был создан?

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

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

некоторые вещи, чтобы знать о Gemfile.lock

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

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


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

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

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

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

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

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

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

  • Двигатель Rolls Royce
  • ремни безопасности AutoLive
  • шины ассортимента michellin.
  • PIAA ночные фары
  • etc etc.

Это мой друг, в основном ваш файл gem!


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

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


во-первых, что такое гем?

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

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

Gemfile

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

теперь очень простыми словами:

камень может быть считается библиотекой, которую вы можете использовать в своем коде. Пример: Факер

ваш код может использовать функциональность faker gem для получения поддельных данных.

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