Rails: как включить гем-зависимости? - PullRequest
1 голос
/ 04 июня 2010

Это нубский вопрос:

Как добавить драгоценные камни в мое приложение rails таким образом, чтобы я мог просто скопировать структуру каталогов моего приложения в удаленное местоположение и заставить его просто работать со всеми драгоценными камнями, от которых я зависел, установленными и доступными?

Ответы [ 4 ]

1 голос
/ 04 июня 2010

Перспективное решение заключается в использовании Bundler , который требуется в Rails 3 и может использоваться прямо сейчас в Rails 2.

0 голосов
/ 29 января 2013

Если вы хотите добавить гемы в нестандартном месте для rails 2.3, вы можете добавить такие строки в config / environment.rb:

$:.push("/home/_whatever_/ruby/gems")
ENV['GEM_PATH'] = '/home/_whatever_/ruby/gems:/usr/lib/ruby/gems/1.8'

Это полезно, например, если вы добавили гемы в вашу установку rails на hostgator.com

Чтобы помочь вашим задачам с граблями работать корректно, добавьте эти строки в .bashrc:

export GEM_HOME=/home/_whatever_/ruby/gems
export GEM_PATH=$GEM_HOME:/usr/lib/ruby/gems/1.8
export PATH=$GEM_HOME/bin:$PATH
0 голосов
/ 15 августа 2011

Как сказал x1a4, Bundler - это путь, но альтернатива (проще в краткосрочной перспективе) - распаковать (заморозить) ваши драгоценные камни.

В вашем файле config/enviroment.rb внутри блока Rails::Initializer.run do |config| укажите, от каких драгоценных камней вы зависите следующим образом:

config.gem 'will_paginate', :version => '~> 2.3.11', :source => 'http://gemcutter.org'
config.gem 'nokogiri'

(атрибуты :version и :source являются необязательными.)

В командной строке перейдите в корневой каталог вашего приложения и введите:

rake gems:install
rake gems:unpack

Ваши драгоценные камни должны отображаться в папке с именем vendor\gems в вашем приложении. (Я верю), ваше приложение будет автоматически искать там сначала все драгоценные камни, которые ему требуются.

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

0 голосов
/ 04 июня 2010

путь к драгоценным камням в каталоге

RAILS_ROOT/vendor/gems

Вы должны заморозить / распаковать все драгоценные камни, используемые в этом каталоге

Драгоценные камни Rails и путь их зависимостей будут

RAILS_ROOT/vendor/rails

И путь всех плагинов должен быть

RAILS_ROOT/vendor/plugins

По умолчанию Rails загружает драгоценные камни из машины (или вы можете сказать локально). Чтобы загрузить драгоценные камни из каталога драгоценных камней, вы должны добавить следующий код в тур конфиг / enviorment.rb

  config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir| 
    File.directory?(lib = "#{dir}/lib") ? lib : dir
  end

...