ユーザーがいて、異なるタイプのユーザー、たとえば電子メールのみを持つ通常のユーザーと、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
サブスクライバーのみが取得されますが、「タイプ」列を使用しない場合はユーザーも検索されます。