Я хочу создать полиморфный класс (Пользователь) как конкретный тип и использовать его позже с условиями, зависящими от типа объекта.Создать как полиморфный тип в Rails
class SuperUser < User
class Admin < User
class User
@user = @account.users.new(params[:user])
Это создаст пользователя как объект пользователя. Только так я могу думать о создании и использовании @user в качестве конкретного типа объекта, делая что-то вроде этого:
@user = Admin.new(params[:user]) if params[:user][:type] == "Admin"
@user = SuperUser.new(params[:user]) if params[:user][:type] == "SuperUser"
@user.account = @account
if @user.is_a? Admin
...
end
....
Итак, есть ли лучший способ сделать это?
Благодарим за это. Я думаю, что более чистое решение будет заключаться в том, чтобы логика в модели так обозначалась Mik_Die с принятым ответом. –