1
私は古典的な "type"属性で継承を使用しようとしています。ユーザーのタイプを「Admin」に設定すると、Adminオブジェクトが返されますが、ユーザーオブジェクトが返されます。どのようにしてクラスをモデルのように動作させ、STIを持つように動作させることができますか?ActiveModel ::モデルの継承が期待通りに機能しない
class User
include ActiveModel::Model
attr_accessor :type
def persisted?
false
end
end
class Admin < User
end
user = User.new(type: "Admin") #=> #<User:0x007ff68a1ade60 @type="Admin">
'type'が、ここでは単にインスタンス変数です。新しいユーザーをインスタンス化して 'type'を指定すると、その変数が設定されます。 'Admin.new'はあなたに' Admin'クラスのオブジェクトを与えます。 – archana