私は優れた twitter-bootstrap-rails 宝石。その宝石には助手がいます(NavbarHelper)これはRubyヘルパーを使ってBootstrap navbarsを生成するために使われます。私はドロップダウンリストが "コツを持っていないように宝石を猿のパッチにしたい。
そこで、私はソースを調べ、関連する方法を見つけました ここに。私がしなければならないのは、それを無効にすることだけです。 config / initializersで新しいファイルを作成しました。 navbar.rb
以下の内容で
NavbarHelper.module_eval do
def name_and_caret(name)
"HELLO WORLD"
end
end
おそらく、ドロップダウンタイトルのすべて私のアプリで "HELLO WORLD"と表示されるべきです(宝石のソースによって参照されるように)。しかし、これは起こっていないし、宝石はまったくmonkeypatchedようには表示されません。
私は置くことを試みた puts NavbarHelper.methods - Object.methods
イニシャライザファイルには結果、私はRailsがイニシャライザの前に宝石を正しくロードしていないと思うようになります。私はまた、宝石がヘルパーにオートロードを使用していないことを確認し、確認しました。
編集
これを複雑にしているのは、私の Gemfile
以下の方法で宝石を含みます:
gem "twitter-bootstrap-rails", git: "git://github.com/seyhunak/twitter-bootstrap-rails.git", branch: "bootstrap3"
私はこの特定のバージョン管理がmonkeypatchingが機能しないことを意味するのかどうかわかりません。
編集#2
私のシステムには宝石のバージョンが1つしかないようですので、問題はないと思います。また、私は、 require "twitter-bootstrap-rails
イニシャライザファイルの先頭には結果が表示されません。
回答:
回答№1は1問題は、このモジュールのメソッドにパッチを当てるが、モジュールはすでにこの時点で含まれているということです。 application_helper.rbでこれを定義してみてください
def name_and_caret(name)
super("blub #{name}")
end