2

我有一个 Rails 引擎(别人的 gem),我试图通过添加另一个 gem 作为依赖项来修改它。我似乎无法弄清楚如何让引擎需要库。我尝试了各种不同的东西,但我似乎无法让它发挥作用。

我的主应用程序 Gemfile 我有引擎:

gem 'enginegem'

在引擎的 gemspec 中,我有:

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

在引擎中,我尝试通过添加此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

将此库作为依赖项添加到引擎并使其需要该库的适当方法是什么?

4

1 回答 1

1

如果您告诉我们您要修改哪个 gem,这会有所帮助。

在大多数 gem 中,您将拥有一个 lib/enginegem.rb,这可能是需要 gem 的最佳位置:

require 'somethinggem'

编辑:虽然这个答案对 OP 没有帮助(见下面的评论),但我会保留在这里,因为它可能会帮助其他人。

编辑 2:每个试图创建引擎的人都应该看看devise的代码。如果您想要一种更具指导性的方法,请尝试Jose Valim 的Crafting Rails Applications一书。事实上,如果你对这个引擎很认真,你应该两者都做。

于 2011-04-09T21:26:54.993 回答