Rails モデル継承 質問する

Rails モデル継承 質問する

ユーザーがいて、異なるタイプのユーザー、たとえば電子メールのみを持つ通常のユーザーと、Web サイト フィールドを持つサブスクライバーを作成したい場合、サブスクライバーが追加されたフィールドのみを持つユーザーからすべてを継承するにはどうすればよいでしょうか。

ベストアンサー1

すべてのフィールドを含むテーブルを作成し、タイプ列を指定する必要があります。つまり、

create_table :users do |t|
  t.string :email
  t.string :website
  t.string :type
end

次のようなクラスを作ることができます

Class User < ActiveRecord::Base

Class Subscriber < User

サブスクライバーはUsersモデルからすべてを継承します。type列は、異なるモデルを区別するためにあります。たとえば、

Subscriber.all 

サブスクライバーのみが取得されますが、「タイプ」列を使用しない場合はユーザーも検索されます。

おすすめ記事