次のようなクラスがあります。
class Refinery::Blog::Post < ActiveRecord::Base
belongs_to :author, class_name: '::Refinery::User', foreign_key: :user_id
# SNIP very long class body
end
できればクラス全体をオーバーライドしたくありません。そこには無傷のままにしておくべき大量の動作があり、エンジンの他の多くの部分はクラスを名前で参照するため、サブクラス化できません。class_eval
既存の関連付けを削除または置換する方法はありますか? 次のように再定義してみました。
Refinery::Base::Post.class_eval do
belongs_to :author, class_name: 'MyUser', foreign_key: :user_id
end
しかし、うまくいかないようです。