Rails engineから本体Railsで定義したモデルを得たい。

Rails engineから本体Railsで定義したモデルを得たい。

モデル == ActiveRecord::Baseのサブクラス、ぐらいのゆるい認識で。

こう

Dir[File.expand_path("#{Rails.root}/app/**/*.rb", __FILE__)].each(&method(:require_dependency))

def models
  ActiveRecord::Base.subclasses
end

なおこれはengine側のやつも根こそぎなので適宜reject。 一行目のやつは、developmentでは必要になってからしか読み込まれないのでそれです。