このタイトルは実際にはすべてを説明していないため、ここに入ります。私はいくつかの機能(すなわち、ユーザーモデルと認証)を共有する2つのRailsエンジンを持っています。私は基本User
クラスを持っているし、そのようになどの各アプリのために、この基本クラスから継承する二つの他のユーザークラス:Rubyで現在のインスタンスモジュールを取得する方法
class User; end
class App1::User < ::User; end
class App2::User < ::User; end
私の認証が含まれている以下の
def user_from_session
User.find_by_id(session[:user_id])
end
と同様の方法を持っています私のapplication_controllerで。私の問題は、ユーザーがフェッチされたときに、常にベースのUser
クラスを使用することです。私が本当に望むのは、そのメソッドを呼び出すアプリケーションと同じタイプのUserを取得できることです。例えば
、ユーザーがSomeController
上にある場合:
class App1::SomeController < ApplicationController; end
私はそれがApp1::User
をインスタンス化するだけではなく、User
は、このされるようにapplication_controllerのメソッドがApp1
を引き出したいです可能?
私は2つのuser_from_session
メソッドを含む解決策を探しているわけではありません。私はそれを実装する方法を認識しています。 Rubyでこのタイプのことが可能かどうかを知ることにもっと興味があります。
? –
ああ申し訳ありませんが、それはapplication_controllerのbefore_filterから呼び出されています...実際にそこの 'current_user'メソッドから呼び出されました – brad