你能帮我写下面的范围:
Cv
belongs_to Student
我想写一个范围,它给了我所有cvs,其中学生至少有一个
教育(student.edcuations.any?
)和学生有效(填写所有属性)
我想为Cv
编写该范围。
模型
#cv.rb
belongs_to :student
#student.rb
has_many :cvs
has_many :educations
答案 0 :(得分: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
答案 1 :(得分:0)
查看ActieRecord Query Interface Guide的第11.2.3节,了解如何加入嵌套关联。
像
这样的东西scope :with_education, joins(:student => :educations).where("some conditions")
您可能希望定义:valid_student
范围,然后在其中利用它。