Как изменить движок Rails, чтобы он требовал моей библиотеки? - PullRequest
2 голосов
/ 10 апреля 2011

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

Мое основное приложение Gemfile У меня есть движок:

gem 'enginegem'

В gemspec движкаУ меня есть:

s.add_dependency 'somethinggem', '~> 1.0'

В Engine есть модель, которую я пытаюсь изменить, добавив этот acts_as_something метод:

class Page < ActiveRecord::Base
  acts_as_something
end

И есть контроллер, который япытаюсь изменить:

class PagesController < ApplicationController
  around_filter :do_something

  def do_something
    my_var = 'foobar'
    Something.do_something_with my_var do
      yield
    end
  end
end

Как правильно добавить эту библиотеку в качестве зависимости к движку и требовать от нее библиотеки?

1 Ответ

1 голос
/ 10 апреля 2011

Было бы полезно, если бы вы сказали нам, какой драгоценный камень вы пытаетесь изменить.

В большинстве драгоценных камней у вас будет файл lib / enginegem.rb, вероятно, лучшее место для этого камня:

require 'somethinggem'

РЕДАКТИРОВАТЬ: Хотя этот ответ не помог ОП (см. Комментарии ниже), я оставлю его здесь, потому что он может помочь другим.

РЕДАКТИРОВАТЬ 2: Каждый, кто пытается создать движок, должен взглянуть на код devise .Если вы хотите более дидактический подход, попробуйте Crafting Rails Applications книгу Хосе Валима.На самом деле, если вы серьезно относитесь к этому двигателю, вы должны сделать оба.

...