Это название на самом деле не объясняет все, так что здесь идет. У меня есть два движка Rails, которые разделяют некоторые функции (например, модель пользователя и аутентификация). У меня есть базовый класс User
, а затем два других пользовательских класса, которые наследуются от этого базового класса для каждого приложения, например:
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
. Что я действительно хочу, так это иметь возможность извлекать пользователя того же типа, что и приложение, вызывающее этот метод.
Например, если пользователь включен SomeController
:
class App1::SomeController < ApplicationController; end
Я хочу, чтобы метод в application_controller извлекал App1
, чтобы он создавал App1::User
, а не просто User
Возможно ли это?
Я НЕ ищу решение, которое включает два user_from_session
метода, по одному для каждого приложения. Я знаю, как это реализовать. Меня больше интересует, возможен ли такой тип вещей в Ruby.