您好,我有嵌套属性模型,如下所示,
Model Parent
has_many :students
has_many :classinos, through: :students
accepts_nested_attributes_for :students, :reject_if => lambda { |a| a[:firstname].blank?}, :allow_destroy => true
Model Student
belongs_to :Parents, for
has_many :classinfos, :dependent => :destroy
has_many :classlists, :through => :classinfos
accepts_nested_attributes_for :classinfos, :reject_if => lambda { |a| a[:classlist_id].blank?}, :allow_destroy => true
Model Classinfo
belongs_to :student, foreign_key: :student_id
belongs_to :classlist, foreign_key: :classlist_id
Model Classlist
has_many :students, :through => :classinfos
has_many :classinfos
这种关系就像...... 家长(计算学费)<<学生<< Classinfo>>班级列表(:学费)
Model Classlist有一个名为" tuition"的列,我想总结学生的所有学费,并在Parent模型中计算。
到目前为止,我有......Model Classinfo
def tuitioncount
Classlist.where(:id => self.classlist_id).sum(:tuition)
end
我可以通过
显示学生的学费<% @student.classinfos.order(classlist_id: :asc).each do |classinfo| %>
<%= classinfo.tuitioncount%>
<%end%>
但我不知道如何总结它们并在Model Parent中定义一个方法。 我需要像...这样的东西。
Model Parent
def balance
Classlist.where(:id => self.students.classinfos.classlist_id).sum(:tuition)
(or)
Student.where(:member_id => self.id).sum("student.tuitioncount")
end
请帮助我,我真的不知道如何从一个非常嵌套的模型中提取值...
答案 0 :(得分:0)
如果我遵循你的协会,就像这样。
#include <iostream>
#include <tuple>
#include <utility>
#include <typeinfo>
template <typename... Args>
std::tuple<Args...> func() {
std::tuple<Args...> x;
return x;
}
int main() {
auto r = func<int, char>();
std::cout << typeid(r).name() << std::endl;
return 0;
}
注意:在Rails 3.1中添加了对这种深层嵌套关联的支持,因此早期版本需要不同的解决方案。