2

依存関係として別の gem を追加して変更しようとしている Rails エンジン (他の誰かの 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 には lib/enginegem.rb があります。おそらく、gem を要求するのに最適な場所があります。

require 'somethinggem'

編集:この回答はOPには役立ちませんでしたが(以下のコメントを参照)、他の人に役立つ可能性があるため、ここに保持します。

編集 2: エンジンを作成しようとしている人は全員、deviseのコードを確認する必要があります。より教訓的なアプローチが必要な場合は、Jose Valim のCrafting Rails Applications book を試してください。実際、このエンジンに真剣に取り組んでいるのであれば、両方を実行する必要があります。

于 2011-04-09T21:26:54.993 に答える