3

私はルビー/レールに比較的慣れていないので、次の質問があります。

私はスケジューリング アプリに取り組んでおり、Classes という名前のモデルと ClassEntries という名前の別のモデルがあります。それらの間の関係は、各ユーザーが学期ごとに複数のクラスエントリを持つことができ、それぞれが 1 つのクラスに関連しているということです。Classes テーブルの各レコードは、特定の大学に属しています。ユーザーは、1 学期 (通常は 5) の ClassEntries テーブルに複数のエントリを持つことができます。彼らのスケジュールは、同じ学期 ID を持つすべての ClassEntries で構成されています。

ClassEntries モデルと Classes モデルの情報を手元のユーザーのためにまとめる、Schedule という 3 番目のモデルを使用する必要があるかどうかはわかりません。私はもともとこの機能を PHP で作成し、MySQL JOIN を使用して必要な情報を収集しました。Rails では、これを達成するためのより良い方法があるはずです。

Railsでこれを行う最良の方法は何ですか?

どうもありがとう

4

1 に答える 1

1

したがって、探しているのは、Rails のほとんどの関連付けです。

次のようになります。

def User < ActiveRecord::Base
  has_many :course_entries
  has_many :courses, :through => :class_entries
end

def CourseEntry < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
end

def Course < ActiveRecord::Base
  has_many :course_entries
  has_many :users, :through => :class_entries
end

some_user.coursesこれらの関連付けを設定すると、Rails でorのようなことができるように some_course.usersなり、CourseEntry を介して結合が行われます。

これが役立つかどうか教えてください。さらに詳しく説明する必要がある場合は、お知らせください。

于 2012-10-28T02:52:20.047 に答える