我希望创建一个多态类(User)作为特定类型,稍后根据对象的类型使用它。在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。 – 2012-03-14 23:18:23