rails, зачем нужны другие жемчужины проекта?

У меня есть два проекта, один из которых называется A, а Rails другой называется B, просто чистый код Ruby.

когда я вызываю A действий контроллера с именем do_action, он вызывает B задачи rake, такие как rake dosomething

но я получил ошибку:

rake aborted!
cannot load such file -- pry

драгоценный камень pry в B Gemfile.

Я хочу знать, зачем проекту rails A нужны B драгоценные камни Gemfiles?

я думаю, что мой linux env prolem? спасибо


person lioooo    schedule 20.01.2014    source источник
comment
добавить require pry в application.rb после require 'rails'   -  person Bijendra    schedule 20.01.2014
comment
да, я могу это сделать. это сделает проект A больше, поэтому я думаю, что лучше всего это сделать. ТНК   -  person lioooo    schedule 21.01.2014
comment
был ли ответ полезен?   -  person Малъ Скрылевъ    schedule 22.01.2014


Ответы (1)


Поскольку у вас есть вызов rake dosomething к другому проекту из конкретного (первого), гемы среды будут применяться из первого проекта. Итак, либо:

  1. добавить зависимость gem pry в первый проект

  2. сгенерируйте второй проект, написанный на чистом ruby, как гем и добавьте его как зависимость в Gemfile вашего проекта Rails следующим образом:

    gem 'your_ruby_project_gem', :path => 'path/to/your/ruby/gem/project'
    

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

    bundle exec rails s
    

Я предпочитаю второй подход.

person Малъ Скрылевъ    schedule 20.01.2014
comment
проект B не просто чистый рубиновый код. это рубиновый проект, он будет часто меняться. я не хочу добираться до драгоценного камня. так что есть какой-то способ? - person lioooo; 21.01.2014
comment
@lioooo да, предлагаемый второй способ предназначен для проекта, который находится в разработке, т.е. аргумент :path позволяет вам изменить код по пути, поэтому ваш гем также будет изменен без переустановки: читайте здесь: bundler.io/v1.5/gemfile.html - person Малъ Скрылевъ; 21.01.2014