0

次のスコープを書くのを手伝ってくれませんか。

CvStudent所属し、学生が少なくとも1つの教育(student.edcuations.any?)を持ち、学生が有効である(すべての属性が入力されている)すべてのCVSを提供するスコープを作成したい

そのスコープを。に書きたいCv

モデル

#cv.rb
belongs_to :student

#student.rb
has_many :cvs
has_many :educations
4

2 に答える 2

3

モデルのレイアウトを誤解していると思います。

各履歴書には教育がリストされているので、このように見えるべきだと思います(そうでなければ、データベース内で互いにどのように接続されていますか)

#cv.rb
belongs_to :student
has_many :educations

#student.rb
has_many :cvs

#education.rb
belongs_to :cvs

ただし、おそらくクラスメソッドを使用するだけです。

#student.rb
def cvs_with_education
   self.cvs.reject {|cv| cv.educations.empty?}
end
于 2012-11-25T22:49:03.483 に答える
0

ネストされた関連付けを結合する方法については、 ActieRecord Query Interface Guideのセクション 11.2.3 を確認してください。

何かのようなもの

scope :with_education, joins(:student => :educations).where("some conditions")

:valid_studentおそらく、スコープを定義してから、それを活用したいと思うでしょう。

于 2012-11-25T23:26:40.170 に答える