- 以下のクラス定義をRailsモデルとして定義してマイグレーション記述したいのですが、どう書けば良いか、ご教示いただけないでしょうか。
- 自分なりに考えた回答も書いておりますが、他のより良い方法がないか、考えたいと思っています。
元のクラス定義
Ruby
1class Teacher 2 attr_reader :id, :name, :courses 3 4 def initialize(id, name, courses) 5 @id = id 6 @name = name 7 @courses = courses 8 end 9 10end 11 12class FullTimeTeacher < Teacher 13end 14 15class PartTimeTeacher < Teacher 16 attr_reader :working_days 17 18 def initialize(id, name, courses, working_days) 19 @id = id 20 @name = name 21 @courses = courses 22 @working_days = working_days 23 end 24 25end
自己回答
- STIを利用してクラスの継承関係を表現しています
Ruby
1class CreateTeachers < ActiveRecord::Migration 2 create_table :teachers do |t| 3 t.string :name 4 5 t.timestamps null: false 6 end 7end 8 9class CreateCourses < ActiveRecord::Migration 10 create_table :courses do |t| 11 t.string :code 12 13 t.timestamps null: false 14 end 15end 16 17class CreateAssignments < ActiveRecord::Migration 18 create_table :assignments do |t| 19 t.integer :teacher_id 20 t.integer :course_id 21 22 t.timestamps null: false 23 end 24end 25 26class Teacher < ActiveRecord::Base 27 has_many :assignments 28 has_many :courses, through: :assignments 29end 30 31class Course < ActiveRecord::Base 32 has_many :assignments 33 has_many :teachers, through: :assignments 34end 35 36class Assignment < ActiveRecord::Base 37 belongs_to :teacher 38 belongs_to :course 39end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/08 05:12
2015/08/08 13:35
2015/08/11 12:58