【发布时间】:2008-10-02 04:41:56
【问题描述】:
我正在为我的学校在 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
但这似乎不起作用。有什么想法吗?
【问题讨论】:
标签: ruby-on-rails activerecord