我想我已陷入混乱,这就是我想要做的事情:
我有3张桌子,Students, Classes and Payments
我目前通过has_one :classes
和has_many :students
设置课程时,您可以选择课程运行的周数(显示周数的数字字段),例如5或7
我需要的是跟踪学生上课时的付款金额。例如becky参加体育课,她在5周的第3周加入,只付1周。
到目前为止,付款表有3列(可以添加更多)students_id
classes_id
,week_paid
和amount_paid_to_date
我还没有将付款表链接到任何内容
你能指出我正确的方向吗?或者如果可能的话?由于
答案 0 :(得分:1)
我在这里看到了几个问题。如果Payment
有student_id
和class_id
,我们会说belongs_to
:
belongs_to :student
belongs_to :class
您可以查看here the difference between has_one and belongs_to。基本上它取决于您存储外键的位置。
此外,Fran是对的 - 最好坚持使用rails约定并重命名classes
。这将使整个事情变得更加容易。我们假设您将其重命名为lessons
。然后,它的模型将被称为Lesson
然后,如果您想获得付款金额,您可以这样做:
paid_amount = student.payments.where(lesson_id: lesson_id).sum(:amount)
或类似的东西。
答案 1 :(得分:0)
所以我想我已经解决了,
学生模特:
has_many :payments
课程模型:
has_many :students
has_many :payments
付款模式:
has_one :students
has_one :classes
这可能是最简单的方法:)