3

次のようなクラスがあります。

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

しかし、うまくいかないようです。

4

1 に答える 1

0

Look in the initializer file, which I think is in config/initializers/refinery/blog.rb

Refinery::Blog.configure do |config|


  # If you're grafting onto an existing app, change this to your User class
   Refinery::Blog.user_class = 'MyUser'
end
于 2013-07-24T21:09:27.297 に答える