我正在为我的学校在 Rails 上做一个项目(不要担心这不是在代码上评分),我正在寻找一种干净的方式来遍历 ActiveRecord 中的关系。
我有 ActiveRecord 类,称为用户、组和分配。用户和组具有 HABTM 关系以及组和分配。现在我需要的是一个用户函数 get_group(aid),其中“给定一个用户,找到给定分配的组”。
简单的路线是:
def get_group(aid)
group = nil
groups.each { |g| group = g if g.assignment.find(aid).id == aid }
return group
end
是否有更简洁的实现利用组和分配之间的 HABTM 关系而不仅仅是迭代?我还尝试过的一件事是 find() 的 :include 选项,如下所示:
def get_group(aid)
user.groups.find(:first,
:include => :assignments,
:conditions => ["assignments.id = ?", aid])
end
但这似乎不起作用。有任何想法吗?