2

Rails エンジンのファイルを上書きしたいのですが、そのファイルはそのエンジンの lib/rails ディレクトリにあります。同じファイルを取得して lib/rails ディレクトリにドロップしても、ファイルは上書きされません。Railsは、アプリディレクトリにあるファイルとは異なる方法でlibディレクトリを処理しているようです。

また、ファイル名が必要な既存のファイルと同じであるため、このファイルを初期化フォルダー (このソリューションごと) に配置することはできません。これを行う適切な方法は何ですか?

4

1 に答える 1

2

この問題を解決するために私が見つけた最良の方法は、追加することです

require "#{Rails.root}/lib/path/to/file"

の終わりにconfig/application.rb。汚染は最小限で、オーバーライドと同じ効果が得られます。

現在、Spree プロジェクトでオーバーライドするために使用していますlib/spree_samples.rb

編集

この回答でより良い方法を見つけました: エンジンとしてマウントされたgemからのlibファイルのオーバーロード

基本的に、オーバーライドするファイルをディレクトリに配置しますconfig/initializers

于 2013-07-13T02:33:03.707 に答える