私はいくつかのモデルを定義するアプリケーションを持っています。アプリケーションから私のエンジンにいくつかのモデルの機能を拡張したい(例えば、メソッドの追加、関連付けの追加)。 エンジンのモデルをアプリケーションのモデルと同じ名前で追加しようとしましたが、Railsは自動的にそれらをマージしますが、動作しません。レールのエンジンでアプリケーションのモデルを拡張
例えば:私はarticles.metrics @アクセスしようとすると、 (アプリケーションのモデル)
class Article < ActiveRecord:Base
def from_application
puts "application"
end
end
(Inside my Engine)
module MyEngine
class Article < ::Article
has_many :metrics, :class_name => 'Metric'
end
end
にhas_manyアソシエーションが私の記事をモデルに適用なっていません。何か案は ?
私はclass_evalがあなたが探しているものだと思います。私はそれについての経験はありませんが、最近これを読んでいます:http://edgeguides.rubyonrails.org/engines。html#overriding-models-and-controllers – siax
@Arun Kumar M、あなたのメトリクスモデルにarticlesとbelongs_toの関連がありますか?どのように移行され、メトリックテーブルにarticle_idが保持されますか。正確なエラーメッセージは何ですか? –
@OlalekanSogunleはい私はそうです!私はそれを二重にチェックしました。 –