Rails +忽略现有记录,如果它的主要值存储在不同的表中

时间:2015-12-01 07:21:49

标签: ruby-on-rails

在Rails中,非常基本的东西,我没有尝试,但没有得到选项。我正在尝试获取没有奖学金数据的用户值。

学生

[ id, name, standard ]    
1, John, X
2, Alex, XII
3, James, X
4, Steve, XI
5, Richard, XI

学术

[ id, student_id, type_of_scholarship ]
1, 1,"Edward Scholar"
2, 3,"McVince Scholar"  

学生将_SchoShip作为协会

现在我正在尝试创建学生记录的对象没有奖学金来创建UI的下拉列表

Rails:@student = Student.some_method_to_fetch_those_students_dnt_have_scholarship

2 个答案:

答案 0 :(得分:0)

通过这样做,您可以获得没有奖学金的学生: -

@students = Student.get_students_which_has_not_scholarship

然后你可以这样称呼: -

public static boolean whoareyou(String player)
{
    return player.equalsIgnoreCase("Player 1");
}

答案 1 :(得分:0)

你想要像

这样的东西
Student.joins("LEFT JOIN Scholarship ON Student.id = ScholarShip.student_id").where("ScholarShip.id IS NULL")

您可以将此作为学生的范围,并将其命名为您喜欢的名称:

scope :without_scholarships, -> {
   joins("LEFT JOIN Scholarship ON Student.id = ScholarShip.student_id").where("ScholarShip.id IS NULL")
}

将其称为类方法

Student.without_scholarships

这将返回一个可以链接在一起的关系,即

Student.without_scholarships.order(:grade_point_average)

或其他什么