2011-04-09 3 views
2

私は依存関係として別の宝石を追加して修正しようとしているRailsエンジン(他の人の宝石)を持っています。私はどのようにエンジンにライブラリを必要とするのかを理解できないようです。私はいろいろな種類のものを試しましたが、うまく動作しないようです。私が持っているエンジンのgemspecでライブラリを必要とするようにRailsエンジンを変更するには?

gem 'enginegem' 

私のメインアプリGemfileは、私はエンジンを持っているエンジンで

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

、私は追加することにより、変更しようとしているモデルがありますこのacts_as_something方法:

class Page < ActiveRecord::Base 
    acts_as_something 
end 

そして、私がモーションしようとしているコントローラがありますdify:

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

変更しようとしている宝石について教えてください。ほとんどの宝石で

あなたはLIB/enginegem.rbを持つことになり、宝石を必要とするのに最適な場所はおそらくあります:

require 'somethinggem' 

EDIT:この答えはOPを助けていませんでしたが(コメントを参照してください私はそれを他の人に助けてくれるかもしれないので、ここでそれを保つつもりです。

EDIT 2:エンジンを作成しようとしている人は誰でもdeviseのコードを見てください。もっと教訓的なアプローチが必要な場合は、Crafting Rails Applications本をJose Valimからお試しください。実際には、このエンジンで深刻な場合は、両方を行う必要があります。

+0

代わりにモデルにrequireを含めるとしてもよろしいですか?それが動作するかどうか教えてください。私は答えを更新できます。 –

+0

libが正しく必要ですか?いくつかの宝石には別の名前が必要です。 –

+0

私はそれが働くようになった。私がやっていたこととは何の関係もなかった。私が使っていた実際の宝石に間違っていました。 – Andrew

関連する問題